A full Eulerian finite difference approach for solving fluid-structure coupling problems A new simulation method for solving fluid-structure coupling problems has been developed. All the basic equations are numerically solved on a fixed Cartesian grid using a finite difference scheme. A volume-of-fluid formulation (Hirt & Nichols (1981, J. Comput. Phys., 39, 201)), which has been widely used for multiphase flow simulations, is applied to describing the multi-component geometry. The temporal change in the solid deformation is described in the Eulerian frame by updating a left Cauchy-Green deformation tensor, which is used to express constitutive equations for nonlinear Mooney-Rivlin materials. In this paper, various verifications and validations of the present full Eulerian method, which solves the fluid and solid motions on a fixed grid, are demonstrated, and the numerical accuracy involved in the fluid-structure coupling problems is examined. Fluid-Structure Interaction (FSI) phenomena appear in many places, e.g., biological systems, and industrial processes. In life science, the numerical prediction of the FSI problems involves twofold significance: fundamental and practical aspects. For example, it would allow us to gain insight into how life is sustained, and support surgical planning in medical treatments. Conventionally, the computational fluid dynamics is modelled in an Eulerian way, while the computational structure dynamics is normally treated in a Lagrangian way. The coupling of the fluid and structure dynamics is a formidable task due to such a difference in the numerical framework as well as its multi-physics nature.. In a creeping (zero Reynolds number limit) flow involving a biological membrane, once boundary conditions on the membrane surface are determined via constitutive laws for e.g. an in-plane stress and a bending moment, the bulk flow field is found using Green's function. In such a situation, no volumetric mesh is needed in the bulk region. A boundary element method is applicable to predicting capsule [59] and red blood cell [60] motions interacting with the fluid flow.. For non-zero Reynolds number flows, on the other hand, it is necessary to set out the computational mesh over the entire domain. There are currently several major approaches classified with respect to the computational treatment how the kinematic and dynamic interactions are coupled on the moving interface.. The most accurate approach is raised as Arbitrary Lagrangian Eulerian (ALE) [3, 22, 29, 30, 50] or DeformingSpatial-Domain/Space-Time (DSD/ST) [31, 75, 76] technique, in which the body-fitted mesh is used. The latter method enables one to arbitrarily choose spatiotemporal nodes, and facilitates to simulate the moving particle and FSI problems. These approaches are referred to as an interface-tracking approach, in which the surface mesh is accommodated to be shared between both the fluid and solid phases, and thus to automatically satisfy the kinematic condition. As the flow is resolved along the moving/deforming object surface, the boundary layer is expected to be highly resolved, and the dynamic interaction is accurately coupled through iterative procedures. Once the bodyfitted mesh is provided, the state-of-the-art of the interface-tracking approach is satisfactory for achieving accurate predictions, including the applications of moving rigid particles [25, 37] , moving hyperelastic particles [12] , parachute aerodynamics [68] , blood flows [2, 11, 74, [77] [78] [79] and heart flows [84, 95] . However, the whole computational domain has to be re-meshed as the object moves/deforms, which is computationally expensive.. An alternative to the interface-tracking approach is an Eulerian-Lagrangian approach, in which the fluid and solid phases are separately formulated on the fixed Eulerian and Lagrangian grids, respectively. A noticeable contribution is the development of the Immersed Boundary (IB) method by Peskin [57, 58] , who introduces a pseudo delta function for communication between the Eulerian and Lagrangian quantities, and demonstrated the landmark simulation of the blood flow around heart valves [57, 58] . The Fictious Domain (FD) method [14, 15, 65, 90] , and PHYSALIS [71, 96] for specific multiphase flow problems with circular or spherical particle are also classified into the Eulerian-Lagrangian approach. The IB and FD methods have been applied to a variety of studies, for example, moving rigid particles [14, 15, 39, 40, 91] , moving flexible bodies [27, 49, 97] , red blood cell motion [10, 16, 49] , and restricted diffusion with permeable interfaces [26] . The IB method has also inspired many researchers to propose a number of improved methods. For example, to facilitate the application to medical problems, the immersed finite element method, in which a new kernel function instead of the pseudo delta function is introduced for determining the cut-off region around the interface on a non-uniform mesh system, is proposed in [44, [92] [93] [94] . Also, the immersed interface treatment [41] [42] [43] 73] improves the sharpness of the interface by incorporating the jump in the stress and velocities across the interface. Recently, a conservative momentum exchange method [72] is proposed to facilitate the simulation of the fluid flow involving a number of elastic particles by combining the finite difference and finite element approaches.. In the above-mentioned methods for predicting the motion/deformation of hyperelastic material, the solid displacement is temporally updated in the Lagrangian way. In general, the hyperelastic constitutive law is expressed as a function of the deformation gradient tensor F = ∂x/∂X, here x denotes the current coordinates, and X the reference coordinates [4] . The label of each Lagrangian node links the reference configuration and the set of the current node positions representing the current configuration. Therefore, the Lagrangian description has been preferably employed. However, the re-meshing procedure at each time step leads to intensive computation if system involves complicated geometry of solid and/or a large number of objects [69] .. Let us consider patient-specific simulations in a medical field. The multi-component geometry of the inner side of the human body is provided as voxel data, which are converted from the medical image of a Computed Tomography (CT) or a Magnetic Resonance Imaging (MRI). The basic idea of the medical image-based simulation is found in [74, 77] , in which the voxel data are converted into the finite element mesh before starting the computation, and the mesh is reconstructed with time advancement. As pointed out in [47, 51, 88] , since technical knowledge and expertise are required for the mesh generation and reconstruction, an alternative simulation method without mesh generation procedure would be desirable to extend the FSI simulation to certain additional classes of problems in the medical field. Motivated by such a practical background, the full Eulerian finite difference methods, which directly access the voxel data to describe the rigid boundary on the fixed Cartesian mesh and avoid difficulty in mesh generation and reconstruction, have been developed in [47, 88] . The application includes the prediction of a coil embolization for aneurysms [51] , which has been used in practice to support surgical planning.. We further develop a full Eulerian method for fluid-structure interactions involving flexible hyperelastic material. In the interface-capturing methods for multiphase flow simulations, for instance, Volume-Of-Fluid (VOF) [23] , level set [6, 55, 56, 64, 70] , and phase field [35, 85] approaches, one set of governing equations for the whole flow field, referred to as a one-fluid formulation [81] , is often employed. We follow such an idea, and write all the basic equations on a fixed Cartesian grid in a finite difference form. Several Eulerian solvers for modelling the solid deformation have been proposed for linear elastic materials [47, 87] , for elasto-plastic materials [54, 82] for neo-Hookean materials [9, 46, 83] and for more general hyperelastic materials [8] . We treat a Mooney-Rivlin hyperelastic material [48, 61] , and consider the nonlinearity of the Cauchy stress with respect to a left Cauchy-Green deformation tensor [4, 20] . Our fluid-structure coupling approach is characterized by the feasibility in implementing the hyperelastic constitutive law into the standard incompressible fluid flow solvers, and also by the treatments in capturing the fluid-structure interface and the solid deformation. In the Lagrangian method, the body-fit finite elements automatically distinguish between the fluid and solid phases. In the present Eulerian method, considering that the voxel data contain the volume fraction of fluid and solid, we apply the VOF formulation [23] to describing the multi-component geometry (see figure 1) . The large deformation is usually described by using the Piola-Kirchhoff stress tensor as a function of the deformation gradient, which is suited to the Lagrangian formulation as mentioned above. By contrast, the Eulerian formulation lacks of the material points to link between the reference and current configurations. Therefore, we must devise a method to quantify the level of deformation. To this end, we introduce the left Cauchy-Green deformation tensor B(= F · F T ) defined on each grid point, and temporally update it (see figure 2 ). We will devote several test computations to the verification and validation, and investigate the numerical accuracy involved in the fluid-structure coupling.. The paper is organized as follows. In §II, we present the details of the basic equations of the system consisting of Newtonian fluid and hyperelastic material, and formulate constitutive equations suited to the full Eulerian FSI simulation. In §III, we explain the simulation methods in terms of the time-stepping algorithm and the finite difference descriptions. In §IV, to explore the validity of the advocated numerical procedure, we perform three kinds of tests. Firstly, we address a one-dimensional problem of the oscillatory parallel fluid-solid layers. Secondly, we make comparisons with available simulations. Thirdly, we examine how the shape reversibility of the hyperelastic materials is reproduced. In §V, we provide some perspectives to conclude the paper.

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


A NEW SLOW-MOTION REPLAY EXTRACTOR FOR SOCCER GAME VIDEOS In this paper, we will present a method to extract slow-motion replays in a soccer game video. According to our observation, a slow-motion replay always happens as a single shot and appears between two gradual transitions. Based on this fact, a video will first be segmented into individual shots and only those shots appearing between two gradual transitions are considered as candidate shots. There are two kinds of slow-motion replays. One comes from a standard camera and consists of some repeating or inserted frames. The other is from a high-speed camera with larger variation between two consecutive frames. Based on these features, an extractor is then provided to check if a candidate shot is a slow motion replay. Some experimental results are given to show the effectiveness of the proposed method. With the development of high-speed Internet, high capacity storage and high-ratio compression standards such as MPEG-1, -2 and -4, people are quickly drowning in a growing amount of available videos. However, people do not have enough time to watch all videos in which they are interested. Fortunately, not all of the frames in a video are worth watching. To save time, developing a method to shorten the video by keeping the valuable and important frames [1] [2] [3] [4] [5] [6] [7] [8] is necessary. For sports videos, the most valuable and important frames are slow-motion replays. In this paper, we will focus on soccer game videos.. In general, for a soccer game video, a slow-motion replay can be generated by frames (called normal frames) captured from either a standard camera or a highspeed one. If frames are from a standard camera, the number of frames captured † Author for correspondence.. per second by the camera is the same as the number of frames played per second; if frames are from a high-speed camera, the number of frames captured per second is greater than the number of frames played per second. A slow-motion replay from a standard camera can be generated by repeating some normal frames or by inserting some frames between two consecutive frames, called target frames. Note that the inserted frames are generated through linear/nonlinear combinations of the two target frames. A slow-motion replay from a high-speed camera can be generated by dropping some normal frames.. Some approaches for detecting slow-motion replays have been presented. Kobla et al. 2 proposed an algorithm to check if a video contains slow-motion replays. The algorithm uses macro blocks, motion, and bit-rate information those are accessible from MPEG video. They pointed out that a slow-motion replay can be modeled as a repetitive pattern of a nonzero number of still frames followed by a nonzero number of shift frames. By detecting this pattern in the MPEG stream, they can pinpoint sequences of the video where a replay is present. However, only considering repeating frames is not enough. Pan et al. 4 pointed that a slow-motion replay happens between two normal shots. They presented an algorithm by using hidden Markov model (HMM) to locate slow-motion replays. The algorithm only detects slow-motion replays with repeating/dropping frames, and it assumes that a slowmotion replay always appears between two normal shots, these two points are not always true. The reason for the first one is that a slow-motion replay may be generated by adding some inserted frames; the reason for the second is that a highlight action may be represented by a group of neighboring slow-motion replays taken from different views. In this paper, we will propose a method to extract all kinds of slow-motion replays (mentioned above) from a soccer game video.. A soccer game video consists of many individual shots. A shot changes into another shot through a transition. There are two kinds of transitions: abrupt and gradual. A slow-motion replay always happens as a single shot, which appears between two gradual transitions. Based on this fact, the proposed method will first provide a transition/shot detector to locate all transitions and shots. Then each shot between two gradual transitions is considered as a candidate shot.. For a slow-motion replay from a standard camera, it is usually generated by slowing the frame rate of the playback of the recorded event. In order to slow down the frame rate, there are two different ways to generate a slow-motion replay. One is to repeat some normal frames. For this kind of slow-motion replays, we can find a phenomenon that shows very little difference between the original and its repeating frame. The other is to insert several frames between two target frames. Since an inserted frame is generated through a linear/nonlinear combination of the two target frames, we can find a phenomenon that shows the difference between the inserted frame and a target one is smaller than that between the target frame and its neighboring normal frame.. On the other hand, for a slow-motion replay from a high-speed camera, it may not contain any repeating and inserted frames, but it will drop some normal frames. This kind of slow motion replays will have a phenomenon that shows a greater difference for most of two consecutive frames. Based on the above-mentioned three phenomena, the proposed method can then extract all kinds of slow-motion replays. The block diagram of the proposed method is presented in Fig. 1 . The remainder of the paper is organized as follows. The transition/shot locator will be presented in Sec. 2. Sections 3 and 4 will describe the proposed slow-motion replay extractor. Experimental results will be given in Sec. 5. Finally, the conclusion will be presented in Sec. 6. In this paper, we have presented an effective method for extracting slow-motion replays in soccer videos. As mentioned previously, a slow-motion replay always appears between two gradual transitions. To save the processing time, only those shots between two gradual transitions are required to be checked. The proposed method has provided a gradual transition detector, which can detect all the gradual transitions successfully. There are two kinds of slow-motion replays: SMRS and SMRH. Based on the features of repeating and inserted frames in a SMRS, an extractor has then been provided to successfully extract all SMRSs. Finally, a SMRH extractor is presented to extract all SMRHs by using some phenomena in a SMRH mentioned previously. Experimental results have shown that all gradual transitions and slow-motion replays can be extracted successfully.. The proposed method is very useful for both professional and general users. It can also be applied in interactive browsing, searching, indexing and skimming.

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


Runtime deadlock analysis for system level design In the design of highly complex, heterogeneous and concurrent systems, deadlock detection remains an important issue. In this paper, we systematically analyze the synchronization dependencies in system-level designs. We propose a data structure called the dynamic synchronization dependency graph, which captures the runtime blocking dependencies among concurrent processes. A loop-detection algorithm is then used to detect deadlocks and help designers quickly isolate and identify modeling errors that cause the deadlock problems. We demonstrate our approach through two publicly available systemlevel modeling languages, SystemC and Metropolis, and two real world design examples, which are complex system-level functional models for video processing. Today's electronic systems become highly complex, highly heterogeneous, and highly concurrent. The platform-based system-level design methodology is increasingly being adopted as the primary method to deal with the complexity of these modern systems. It becomes an important part of the design methodology in the electronic design industry. The earlier in the design process the designers can locate a problem, the less time and resources will be needed to fix it. When a design is synthesized from one level to a more detailed level, such as from the behavioral level to the RTL level or from the RTL level to the gate level, functional verification and debugging become much more complex and expensive. Furthermore, problems that occur at higher abstraction levels are often hidden in the implementation details at the lower levels, making design verification even more difficult and time consuming. Decreasing time-to-market and increasing design cost are pushing design, analysis, and verification above the RTL level. System-level verification approach is necessary to catch any violation of communication constraints or synchronization problems caused by design errors. We focus on system-level designs where the processes can represent software and hardware. The processes are modeled in the transaction level, which means process dependencies will be explicitly shown in the simulator by asynchronous communication. Computation and communication are abstracted in the models.. Even with careful methodological guidance, it is still possible to introduce unintended and undesirable behaviors into function specifications, high level architecture models or function-architecture mappings. The complex interactions of the communication, computation, and data-path control components in a system-level design make it very vulnerable to synchronization errors. Foremost among these are deadlocks, livelocks and starvations. Many system designers encounter deadlocks on industrial examples on a daily basis. Many of these deadlock problems come in the context of architectural mappings and coordination interactions. In this context, deadlocks are very confusing due to other running processes and communication resources like mutex. To manually determine a deadlock, the designers would have to integrate additional debugging messages into the models. By the time an error or an assertion is shown in the simulation, the deadlock may have occurred for some period of time, and the designers would need to use a debugger to step through the long simulation until the originating point of the deadlock is observed. Such procedures takes a lot of experience of the designers and would take hours or even days.. In our MPEG-2 Decoder and Picture-in-Picture Video Processing System, designs of the applications are very complex and design components are modeled as processes running concurrently and asynchronously. It is very difficult to analyze the interactions between the processes. In addition, simulation of such systems is expensive and takes long periods of time, and we would like to catch the problems in the designs earlier in the simulation to avoid long simulation traces and unexpected interactions between processes after the problems occur. Being semantic in nature, the complete and precise characterizations of the systems require formal analysis or verification. Although it is able to consider different input vectors, it can only be done for the simplest of designs due to the state space explosion problem. In this work, We look for a practical solution to deal with these design problems in realistic and complex system designs. A simulation based analysis methodology is proposed for the detection and elimination of these "semantic errors". Designers are responsible for coming up with simulation vectors and scenarios that are important and may lead to undesirable behaviors such as deadlocks. Our approach automatically analyzes the simulation status and reports deadlocks once they occur.. In this paper, we analyze and identify the deadlock problems in system-level simulation. We propose a data structure to be built during simulation that reflects the runtime blocking dependencies among concurrent processes. We follow up with an associated deadlock detection algorithm to monitor the simulation inside the simulation kernel engine. The goal of the algorithm is to help the designers identify the components and synchronization constructs that cause the deadlock problems and provide an error trace and a history of dependency snapshots that show how the system arrives at the deadlock state. Our method of extending the simulation kernel is generic in nature and can be easily fit into any simulation platforms. We use two publicly available system-level modeling languages and simulators, SystemC and Metropolis to demonstrate and validate our approach. We also use two real world designs, an MPEG-2 Decoder and a Picture-in-Picture Video Processing System, to demonstrate the usefulness and effectiveness of the deadlock analysis.. In the next section, we discuss the related works. In Sect. 3, we introduce synchronizations normally used in system-level simulation and show various deadlock situations that can be caused by the synchronizations. We also illustrate the data structure of the dynamic synchronization dependency graph and the algorithms for deadlock detection. In Sect. 4, we present the implementations in SystemC and Metropolis platforms. We also present the evaluations of the case studies in each of the platforms. We conclude the paper in Sect. 5 and discuss some future directions in Sect. 6. In this paper, we study the deadlock problem in system-level designs that include complex synchronization constructs and functionality. We present our deadlock detection approach with a data structure called the dynamic synchronization dependency graph and an associated deadlock detection algorithm. We use two publicly available system-level design tools, Metropolis and SystemC, and two real world design examples to demonstrate the usefulness and effectiveness of our deadlock detection approach for system-level designs. We believe that the dynamic synchronization dependency graph can be used to not only detect deadlock situations but also help search for livelock or starvation problems. We are currently working on combining our simulation-based deadlock detection mechanism and existing formal verification techniques to search for more subtle problems such as livelock and starvation in system level designs. Let T = Set of all the resolution tags corresponding to all e s ; 4: sort T in increasing order and let n = the cardinality of T ; 5: for k = n − 1 to 0 do 6: if All the process vertices at resolution stage T k have been marked being executed first then 7: continue;. 8:. else 9: reset all the deadlocked processes to the resolution stage T k ; 10: choose a process which has not been executed first at stage T k ; 11: Mark the first executed process of the stage T k ; 12: start the simulation from the sc_time_stamp of T k ;. 13:. end if 14: end for 15: Return Deadlock cannot be avoided; 16: end procedure 6 Deadlock detection and resolution techniques have already been extensively studied in the areas of operating systems and database systems [1] [2] [3] [4] [5] [6] [7] [8] [9] . In those domains, deadlock prevention is possible if particular resource allocation policies are applied. Deadlock avoidance is used as a part of scheduling algorithms to choose at least one possible execution path where no deadlock will occur. A resource allocation graph or state graph is usually used to analyze and identify deadlock situations for deadlock detection. Though it is possible to incorporate these techniques in system designs to eliminate deadlocks, they are not general enough to apply to arbitrary designs due to the design flexibility required by today's platform-based embedded systems. Our deadlock analysis mechanism is integrated into the design framework (rather than the designs) to help designers analyze design errors while allowing full design flexibility.. In concurrent software, various formal verification techniques are employed to exhaustively search for deadlock situations in concurrent protocols [10] [11] [12] [13] [14] . 1 In essence, synchronization protocols at a high level of abstraction, either extracted from the designs or defined a priori, are formally verified. However, modern synchronization structures are becoming too complex and their analysis suffers from the state explosion limitation. Our approach is based on simulation, so it can handle real complex system designs.. In simulation verification, assertions that are based on temporal logics can be used to check for safety properties in a certain period of execution. 2 However, temporal assertions have to be designed according to particular applications. They are usually used to guard the overall behaviors of the systems, and not suitable for identifying the causes of those undesirable behaviors due to their "trace checking" natures. A general deadlock detection mechanism is proposed in [15] for discrete event simulation models. However, no implementation on real simulation models are discussed in the literature.. In the emerging simulation environment for heterogeneous system-level designs, an effective and efficient deadlock analysis tool that can be tightly integrated into the design methodology is needed, which is the main focus of this paper. Our mechanism to incrementally search for deadlock during simulation is entirely novel and represent new directions in simulation verification of system-level designs.

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


Considerate home notification systems: A user study of acceptability of notifications in a living-room laboratory Recent field experiments on acceptability of notifications in the home showed that people generally want to be informed of urgent messages as soon as possible, whereas non-urgent messages should not be presented at all. A possible way to improve the acceptability of a notification might be to adjust the presentation mode and the timing of notifications to the message content and to the state of the user. For example, acceptability might be improved by considering user activities when selecting the best time to present the message. The relation between acceptability, presentation mode and timing has not been formally studied in a controlled home setting before. This paper presents the results of a user study, in which 10 participant couples were asked to engage in everyday home activities, and to subjectively rate factors that were expected to influence acceptability. The study was situated in a living-room laboratory in which the user activities and the timing of notifications were controlled. Questionnaire data was evaluated using cluster analysis in order to construct a semantic model that describes the relationship between user, system and environment. The key findings in the present study are: (1) acceptability could be improved by adjusting the level of intrusiveness of the presentation to message urgency: urgent messages should be presented intrusively, medium-urgent messages unobtrusively, and (2) non-urgent messages should be postponed until the message urgency has increased, or skipped if the message urgency never exceeds the predefined presentation threshold. Surprisingly, the user activities at the time of notification were not found to influence acceptability. These findings have resulted in a model of acceptability of notifications for the design of future home notification systems. r An increasing number of products in the home are competing for the user's attention (Den Hartog et al., 2004) . Email notifiers, medicine reminders, washing machines, mobile phones, instant messengers and many other notification providers push information to their users, even though the user-perceived value of some of the messages can be questioned. Considering the growing number of information providers, and the increasing number of messages across products, users might soon be overwhelmed with notifications. As early visionaries of ubiquitous computing, Weiser and Brown (1997) recognized the need for calmness; when computers are all around, these systems need to be designed ''so that the people being shared by the computers remain serene and in control''. The shift from functional use and performance to meaningful presence of technology has also been recognized by Hallnäs and Redström (2002) ; they emphasize the need to design products that co-exist with users and with other products in their life-world.. A large body of knowledge exists on technology for building intelligent products that are considerate of the user as well as the context of use (e.g., Horvitz et al., 1998; Garlan et al., 2002; Altosaar et al., 2006) . Notably, several projects were recently conducted in the area of context-aware telephony (e.g., Khalil and Connelly, 2006; Avrahami et al., 2007; De Guzman et al., 2007) . The focus in these projects tends to be on providing the caller with contextual information about the receiver in order to decrease the frequency of mismatch between the callers' decisions and the receivers' desires. Even though people might appreciate context-aware notification systems similar to context-aware telephones, the relation between the user state, context, and the acceptability of notifications in the home has not been studied before. One needs to know how people experience notifications in the home, before one can design a context-aware system to improve acceptability of notifications. To find out how acceptability of notifications is influenced by the level of intrusiveness of the presentation, and how acceptability depends on timing in relation to user activities, a user study was conducted in a living-room laboratory. Acceptability of notifications in the home has not been studied in a realistic and controlled setting before. The study showed that acceptability of low-and mediumurgency messages could be improved by adapting the level of intrusiveness; acceptability of low-and medium-urgency messages was higher when presented non-intrusively as compared to intrusive presentation (Fig. 5) . Furthermore, the acceptability of highly urgent messages was slightly higher when presented intrusively as compared to nonintrusive presentation. Prediction of the perceived urgency of messages remains a major challenge in the development of future considerate home notification systems. The predefined classification of message urgency used in the present study, which was based on actual user ratings from our prior field study, turned out to be a good predictor of high urgent messages. Predicting message urgency of low-and medium-urgency messages was found to be more difficult; personalized models might be needed to consider perceived message urgency of individual users, either based on the message alone, or in respect to the context (user activities, state of the environment) and the user (user values, user state). Additional user studies are needed to measure perceived message urgency and to create personalized prediction models. User profiles could be used as a start; a learning mechanism would be needed to improve the models in time.

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


Integrated solar energy harvesting and storage To explore integrated solar energy harvesting as a power source for low power systems such as wireless sensor nodes, an array of energy scavenging photodiodes based on a passive-pixel architecture for imagers and have been fabricated together with storage capacitors implemented using on-chip interconnect in a 0.35 μm CMOS logic process. Integrated vertical plate capacitors enable dense energy storage without limiting optical efficiency. Measurements show 225 μW/mm 2 output power generated by a light intensity of 20k LUX. Solar energy harvesting has been proposed to extend the lifetime of wireless sensor networks beyond limitations imposed by batteries [1] . To reduce system cost and volume it is desirable to integrate energy harvesting and storage with data processing circuits. Recent advances in very low power signal processing architectures for sensors [2] has created the opportunity to use CMOS photodiodes, similar to those used in digital cameras, for solar energy harvesting. Moreover, the increase in interconnect capacitance as CMOS processes scale provides an opportunity to store the harvested energy without requiring battery materials to be integrated. This paper describes a test chip incorporating an array of photodiodes and storage capacitors developed to explore the maximum energy per area that can be gathered from a solar source and stored in a standard CMOS process. * N. Guilar is supported by a GAANN Fellowship Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Figure 1 shows the block diagram of a typical wireless sensor node powered by light, mechanical vibration, and a battery. Light energy and vibrations are converted to electrical energy by photodiodes [1] and electromechanical transducers [2] , respectively. The system's energy gathering ability will depend on environmental conditions which change over time and the scavenged energy needs to be regulated before being used. The sensor node consists of an analog-to-digital converter (ADC) that samples sensor data, a DSP core, and an RF transceiver. For low duty cycles, average power for this system (estimated from the literature [2, 3, 4] ) can be under 5 μW.

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


Efficient control of epidemics over random networks Motivated by the modeling of the spread of viruses or epidemics with coordination among agents, we introduce a new model generalizing both the basic contact model and the bootstrap percolation. We analyze this percolated threshold model when the underlying network is a random graph with fixed degree distribution. Our main results unify many results in the random graphs literature. In particular, we provide a necessary and sufficient condition under which a single node can trigger a large cascade. Then we quantify the possible impact of an attacker against a degree based vaccination and an acquaintance vaccination. We define a security metric allowing to compare the different vaccinations. The acquaintance vaccination requires no knowledge of the node degrees or any other global information and is shown to be much more efficient than the uniform vaccination in all cases. Many network phenomena are well modeled as spreads of epidemics through a network. Examples include the spread of worms and email viruses, and, more generally, faults. The propagation of information and opinions can also often be modeled as the spread of an epidemic. Interacting particle systems (like the contact process) have been successfully employed to model such diverse phenomena. The distinguishing features of these stochastic systems are that they model a large number of particles on a graph, and that each particle is assigned a state function of the states of nearby particles. Here particles may represent computers, people... Traditionally, research on interacting particle systems has only answered analysis-type questions, such as determining the steady-state behavior of the system or the probability of an epidemic outbreak. Our aim is to study these models with an engineering eye to answer design-oriented questions. With this general aim in mind, we consider the concrete problem of containment of the spread of viruses in a random graph. We will consider vaccination strategies applicable before the epidemic starts spreading as opposed to vaccination strategies based on contact tracing method (see [4] for a rigorous treatment of this case). We show that the acquaintance vaccination proposed in [7] has the advantage of requiring no global information and allows a much better protection of the network against epidemics (propagating according to a contact process or with a probability of contagion that is a threshold function) than the uniform vaccination.. A worm is a self-propagating malicious program that exploits security vulnerabilities and does not require user action to propagate. The mechanism by which a worm discovers vulnerable hosts is one of the critical factors of a worm's strategy [31] . Current generation worms have typically used simple strategies, such as random or sequential scanning of the address space, to discover vulnerable hosts. In this case, it might be reasonable to model the spread of the epidemic as a contact process [32] : a node can be infected by its infected neighbors at a rate that is proportional to their number. There is a vast literature on epidemics on complex networks (see [25] for a review) and there is now a good understanding of the impact of the topology on the spread of an epidemic [11, 8] . In this paper, we propose a new epidemic model which generalizes the basic SIR model. Most of the epidemic models consider a transmission mechanism which is independent of the local condition faced by the agents concerned. However, if there is a factor of coordination or persuasion involved, relative considerations tend to be important in understanding whether some new belief or behavior is adopted. In such cases, the probability that a node becomes infected when r out of her d neighbors are already infected can be modeled by a threshold function: the probability is v ∈ (0, 1] if r/d ≥ θ and it is zero otherwise. If θ = 1/2, this would correspond to a local majority rule [27] . This notion has been proposed to address the central problem in distributed computing of overcoming failures. The idea is to eliminate the damage caused by failed vertices by maintaining replicated copies of crucial data and performing a voting process among the participating processors whenever faults occur, adopting the values stored at the majority of the processors as the correct data. [22] proposed to apply such ideas to large peer-to-peer systems. It is then imperative to understand the possible influence of malign peer attempting to subvert the system. Such an understanding can lead to better techniques for preventing and fighting this malicious intent.. Another motivation for our work comes from social sciences. In social contexts, the diffusion of information and behavior often exhibits features that do not match well those of the contact process [29] . To illustrate our purpose, consider the basic game-theoretic diffusion models proposed by Morris [24] . Consider a graph G in which the nodes are the individuals in the population and there is an edge (i, j) if i and j can interact with each other. Each node has a choice between two possible behaviors labeled A and B. On each edge (i, j), there is an incentive for i and j to have their behaviors match, which is modeled as the following coordination game with parameter q ∈ (0, 1): if i and j choose A (resp. B), they each receive a payoff of q (resp. (1 − q)); if they choose opposite strategies, then they receive a payoff of 0. Then the total payoff of a player is the sum of the payoffs with each of her neighbors. Even at this level of simplicity, the analysis of the possible equilibria when nodes apply a best-response update gives a number of qualitative insights. Jackson and Yariv [12] analyze the influence of network structure on diffusion of behavior in network games. Watts [30] shows that there can be a cascading sequence of nodes switching to B with only one node forced to play B while all others are playing A (see also [18] ). In this paper, we will extend this result and go one step further: we show how it is possible to control (i.e. provoke or prevent) efficiently such kind of cascading sequence.. The first main contribution of our work is to introduce a new model of epidemic called the percolated threshold model. This model is versatile enough to cover both the contact model and the threshold model. It combines neighborhood effects and random transmission. Our second main contribution is an analysis of this model when the underlying network is a random graph with fixed degree distributions. Our main results on the spread of the epidemic for the percolated threshold model unify many results in the random graphs literature. In particular, we derive a necessary and sufficient condition under which a single node can trigger a large cascade. Although random graphs are not considered to be highly realistic models of most real-world networks, they are often used as first approximation and are a natural first choice for a sparse interaction network in the absence of any known geometry of the problem. Our third contribution is a rigorous analysis of attack and vaccination strategies. We give quantitative results on the possible impact of an attacker for a vaccination targeting high-degree nodes (but requiring global knowledge of the network) and a local immunization called the acquaintance vaccination [7] . We show that this vaccination outperforms the basic uniform vaccination, especially in scale-free networks.. While there is a vast literature providing non-rigorous analysis of immunization strategies for random networks [6, 7] , results in the mathematics literature are very rare. The work of Britton, Janson and Martin-Löf [5] is a notable exception but restricted to the basic contact model. Our work provides a new proof of their results and extends them to our percolated threshold model. In the contact model, random vaccination requires vaccinating a very large fraction of a computer network or population. In particular, as it was heuristically shown in [6, 7] , stopping viruses spreading upon contact requires almost 100% vaccination when the degree distribution of the underlying graph has an infinite variance for any (positive) value of the conatgion probability. On the other hand, targeted vaccination of the most highly connected nodes, while effective, requires global information about the network, rendering it impractical in many cases. Following [7] , we study a vaccination of random acquaintances of randomly selected nodes. In this way, the most highly connected nodes are immunized without requiring the knowledge of the network. Our analysis validates results of [7] and shows that in the contact model, the fraction of vaccinated nodes required to stop the epidemic can be lowered from almost 100% in the random vaccination's case to 25% if the acquaintance vaccination is used. More generally, we define the efficiency of a vaccination strategy as the reduction in the possible damages caused by a single infected node. In the case of power-law graphs, we show that the efficiency gain of the acquaintance vaccination is much higher than the one obtained by random vaccination.. The paper is structured as follows. We introduce our models for the graph, the epidemic and the attack and vaccination strategies in Section 2. Our main results on the spread of the epidemic as a function of the attack strategy (Theorem 4) and the impact of the vaccinations (Theorem 5) are given in Section 3. We present applications of our theorems in Section 4. In particular we derive the cascade condition and compare degree based vaccination and acquaintance vaccination. In Section 5, we give the main technical proofs of our paper. Section 6 summarizes the paper. We have introduced a new model for the spread of epidemics combining neighborhood effects and random transmission: the percolated threshold model. For a degree based attack, we gave a rigorous analysis of the final size of the epidemic on a random graph with specified degree distribution. We also analyzed rigorously the impact of a degree based vaccination or a acquaintance vaccination. Our main theorems give new results for the condition under which a single node can trigger a large cascade (the cascade condition). They allow to quantify the impact of the different vaccinations and allow to define a security metric which allow to compare them. In particular, we show that the acquaintance vaccination proposed in [7] has the advantage of requiring no global information and allows a much better protection of the network than the uniform vaccination in all cases.

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


On fundamental tradeoffs between delay bounds and computational complexity in packet scheduling algorithms In this work, we clarify, extend and solve an open problem concerning the computational complexity for packet scheduling algorithms to achieve tight end-to-end delay bounds. We first focus on the difference between the time a packet finishes service in a scheduling algorithm and its virtual finish time under a GPS (General Processor Sharing) scheduler, called GPS-relative delay. We prove that, under a slightly restrictive but reasonable computational model, the lower bound computational complexity of any scheduling algorithm that guarantees O(1) GPS-relative delay bound is Ω(log2n) (widely believed as a "folklore theorem" but never proved). We also discover that, surprisingly, the complexity lower bound remains the same even if the delay bound is relaxed to O(n a ) for 0 < a < 1. This implies that the delaycomplexity tradeoff curve is "flat" in the "interval" [O(1), O(n)). We later extend both complexity results (for O(1) or O(n a ) delay) to a much stronger computational model. Finally, we show that the same complexity lower bounds are conditionally applicable to guaranteeing tight end-to-end delay bounds. This is done by untangling the relationship between the GPS-relative delay bound and the end-to-end delay bound. Packet scheduling is an important mechanism in providing QoS guarantees in data networks [4, 7, 19] . The fairest algorithm for packet scheduling is General Processor Sharing (GPS) [4, 12] . However, GPS is not a realistic algorithm since in a packet network, service is performed packet-bypacket, rather than "bit by bit" as in GPS. Nevertheless, GPS serves as a reference scheduler that real-world packetby-packet scheduling algorithms (e.g., WFQ [4] ) can be compared with in terms of end-to-end delay bounds and fair bandwidth allocation.. In a link of rate r served by a GPS scheduler, each session i = 1, 2, · · · , n is assigned a weight value φi. Each backlogged session j at every moment t is served simultaneously at rate rj = rφj/( È j∈B(t) φj ), where B(t) is the set of sessions that are backlogged at time t. One important property of GPS, proved in [12] , is that it can guarantee tight end-to-end delay bound to traffic that is leaky-bucket [17] constrained.. It is interesting to look at the GPS-relative delay of a packet served by a scheduling algorithm ALG as compared to GP S. For each packet p, it is defined as max(0, F ALG p − F

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


Design of self-checking fully differential circuits and boards Abstract-A design methodology for on-line testing analog linear fully differential (FD) circuits is presented in this work. The test strategy is based on concurrently monitoring via an analog checker the common mode (CM) at the inputs of all amplifiers. The totally self-checking (TSC) goal is achieved for linear FD implementations provided that the checker CM threshold is small enough with respect to the specified margins of erroneous behavior in the circuit outputs. The design methodology is illustrated for a switched-capacitor biquadratic filter and the self-checking properties evaluated for a hard/soft-fault model. A large checker threshold of 100 mV of CM is chosen since the filter implementation does not minimize nonidealities (e.g., amplifier offsets or clock feedthrough) which result in significant CM components. The circuit outputs are accepted to deviate within a 10% band. With the implemented checker, the TSC goal is not achieved for some faults in narrow regions of the frequency band. For the worst case, a hard fault which results in a 31% deviation is undetected in only a narrow band of approximately 310 Hz. The circuit can be made TSC with a checker threshold of 40 mV and an accepted output deviation of 15%. This is, however, more demanding on the checker (which currently takes less than 3% of the total area and about 7.6% of the total power) and requires an improved filter implementation to reduce CM components. Our solution consists of relaxing a bit the TSC property of the functional block and applying a periodical off-line test to make the checker strongly code disjoint (SCD). This is easy to implement since an off-line test is also required for the checker. The checker outputs a double-rail error indication which ensures compatibility with digital checkers and makes the design of self-checking mixed signal circuits straightforward. The circuit-level mixed-signal approach is extended to the board level by means of the IEEE Std. 1149.1 digital test bus. A methodology aimed at the design of self-checking FD linear analog circuits is presented in this paper. A formal analysis of the faulty behavior of this type of circuits and the properties required to achieve the TSC goal is carried out. The test method is based on the observation of the CM at the inputs of the amplifiers in the circuit. Given the maximum acceptable deviation in the outputs of the self-checking circuit, the circuit can be made self-checking by taking a value of checker CM threshold sufficiently low. In high-performance applications where is very small (e.g., %), the acceptable CM at the amplifier inputs must also be very small (e.g., mV), and this may require careful circuit layout to minimize circuit nonidealities (e.g., amplifier offsets, clock feedthrough, and charge injection) which introduce additional CM effects to those given by component deviations.. The test approach has been illustrated for the case of a switched-capacitor biquadratic filter where the checker takes less than 3% of the total area. This circuit can be made TSC with % and mV. However, since the circuit was not designed to limit additional CM due to circuit nonidealities, the checker threshold was set at mV. For this case, it is shown that most faults are detected with %. For all the faults, the circuit is self-testing, but some of them are not detectable in narrow bands of the frequency band. The circuit can then be made totally self-checking by means of a periodic off-line test which is in any case required for the analog checker.. Besides the methodology itself, other novelties brought in by this work are:. • the use of a simple on-line analog checker capable of monitoring several circuit stages at the same time and of providing a digital error indication; • the simultaneous study of both the hard and soft faults of components external to operational amplifiers and the hard faults of operational amplifier transistors; • the definition of the operation regions (in terms of signal amplitudes, frequencies, the acceptable deviation of the transfer function, the checker tolerance window, and types of faults) in which the totally self-checking goal can be achieved by balance checking; • the extension of the differential circuit testing approach to the on-line checking of mixed-signal boards.

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


The emergence of links between lexical acquisition and object categorization: A computational study Language is about symbols, and those symbols must be grounded in the physical world. Children learn to associate language with sensorimotor experiences during their development. In light of this, we first provide a computational account of how words are mapped to their perceptually grounded meanings. Moreover, the main part of this work proposes and implements a computational model of how word learning influences the formation of object categories to which those words refer. This model simulates the bi-directional relationship between word and object category learning: (1) object categorization provides mental representations of meanings that are mapped to words to form lexical items; (2) linguistic labels help object categorization by providing additional teaching signals; and (3) these two learning processes interplay with each other and form a developmental feedback loop. Compared with the method that performs these two tasks separately, our model shows promising improvements in both word-to-world mapping and perceptual categorization, suggesting a unified view of lexical and category learning in an integrative framework. Most importantly, this work provides a cognitively plausible explanation of the mechanistic nature of early word learning and object learning from co-occurring multisensory data. Anyone who has watched an infant grow into an adult can attest to the changing nature of cognitive functions during human development. Infants are born with limited perceptual, linguistic and cognitive abilities. They rapidly develop skills and acquire knowledge based on their sensorimotor experiences with the physical world. One of the most fundamental capacities is to talk about what they see. Starting from scratch, infants gradually acquire a vocabulary and grammar. Although this process continues throughout childhood, the crucial steps occur early in development. By the age of 3 years, most children have incorporated the rudiments of grammar and are rapidly increasing their vocabulary. Exactly how they accomplish this is uncertain, but it is clear that children make use of information both in the language around them (Saffran et al. 1996) and in the extralinguistic world. Although the unprocessed audio stream is rife with ambiguity, recent tests have shown that babies are sensitive to correlations (Saffran et al. 1996) . Children also use prodigious amounts of information about the world in the language process. This extralinguistic information is needed because language is about symbols and the meanings of those symbols must be grounded in the physical world. Children develop based on their sensorimotor experiences with the physical environment. Different levels of abstraction are necessary to encode efficiently those experiences, and one vital role of the human brain is to bridge the gap from embodied experience to its expression as words in a language. This was termed symbol grounding by Harnad (1990) . In this paper, we focus on grounding object names (a specific set of words) in visual perception. Object names are focused on because early vocabularies are largely made up of names applied to solid objects (Smith et al. 2002) . Object perception is focused because objects are primary perceptual and cognitive units during infancy (Spelke et al. 1995) . For the developing child, solving the problem of grounding object names requires advances in both word learning (what an object name refers to) and object categorization (how to group instances of objects into categories). Importantly, progress in object categorization changes rapidly at the same time as children's object name vocabularies also expand rapidly (Smith 2003) , suggesting possible links between these two processes. Computational models of development and cognition have changed radically in recent years. Many cognitive scientists have recognized that models that incorporate constraints from embodiment-that is, how mental and behavioural development depends on complex interactions among brain, body and environment (Clark 1997 )-are more successful than models that ignore these factors. Language represents perhaps the most sophisticated cognitive system acquired by human learners, and it clearly involves complex interactions between a child's innate capacities and the social, cognitive and linguistic information provided by the environment (Gleitman and Newport 1995) . The model outlined in this study focuses on the initial stages of word learning -How are words attached to their perceptually grounded meanings? Many existing models of language acquisition have been evaluated by artificially derived data of speech and semantics (Brent and Cartwright 1996 , Siskind 1996 , Bailey et al. 1998 , Cohen et al. 2001 . In contrast, multisensory data (materials used by the model) are real and natural. Our model proved successful by taking advantage of recent advances in cognitive modelling, machine learning and computer vision. There is evidence that, from an early age, infants are able to form perceptually-based category representations (Quinn et al. 1993) . Those categories are highlighted by the use of common words to refer to them. Thus, the meaning of the word 'dog' corresponds to the category of dogs, which is initially a non-linguistic mental representation in the brain. Furthermore, Schyns and Rodet (1997) argued that the representations of object categories emerge from the features that are perceptually learned from visual input during the developmental course of object recognition and categorization. In this way, object naming by young children is essentially about mapping words to selected perceptual properties. Our model simulates the underlying mechanism of this mapping process. It represents the meanings of object names as visual features consisting of shape, colour and texture extracted from the visual appearances of objects. Then the model learns to associate those visually grounded meanings with linguistic labels. Moreover, our model attempts to answer a more intriguing question in object naming -How does word learning during infancy influence the formation of the categories to which those words refer? Waxman and Hall (1993) showed that linguistic labels may facilitate the formation of a category by infants at 16-21 months of age. Hence, the formation of categories in the presence of auditory input is possibly based on both the similarities of perceptual features and on shared linguistic labels. Our current model offers a formal account of how linguistic, perceptual and conceptual advances are linked. The model demonstrates the bi-directional relationship between lexical acquisition and object category learning. Thus, object categorization provides mental representations of meanings that are mapped to words. Meanwhile, linguistic labels enhance object categorization by providing additional teaching signals. Our simulation results provide a dynamic view of the essential interactions between word learning and object categorization that is quite in line with evidence obtained from empirical studies (Roberts and Jacob 1991 , Waxman 2004 , Landau 2004 , Yoshida and Smith 2005 , suggesting the cognitive plausibility of our model. Several aspects in word acquisition are simplified in the present model. First, the model uses transcriptions of speech as linguistic input but not raw speech signals. Segmenting continuous speech into isolated words is the first task in language acquisition. Indeed, English-learning infants do display some ability to segment words as early as about 7.5 months (Jusczyk and Aslin 1995) . This model focuses on how they acquire the meanings of these segmented words. Second, the model is a passive learner that perceives multimodal data without active exploration and manipulation of the environment, while a true embodied agent has the opportunity to explore and acquire information more effectively than the passive one here (Clark 1997, Rizzolatti and Arbib 1998) . Third, Goldstone et al. (2001) showed that judgements of the similarity of two members of the same category agree more to a third non-categorized object as a result of category learning. This suggests that grouping two objects together changes their internal descriptions because features are created to subserve the representations and categorizations of objects (Schyns et al. 1998) . More specifically, the elements that two objects share become more important parts of the objects' descriptions. In the context of our model, this suggests that language could potentially influence not only the computation in the categorization module, but also that in the perceptual module (see figure 5 ). Further studies are needed to explore whether language shapes both perceptual learning and conceptual learning simultaneously and, if so, how these two learning processes interact and co-ordinate over the course of acquisition.. The principal technical contribution of this paper is to use multimodal data for object categorization. Clustering visual data is a descriptive task that seeks to identify homogeneous groups of objects based on the values of their attributes that can be high-dimensional. The curse of dimensionality in high-dimensional clustering is well known, and researchers in statistics, pattern recognition and machine learning have developed various algorithms to tackle it. The typical technique is to transform the original feature space into a lower dimensional space. Considering the technical difficulty of the problem, it is surprising that even young children can easily recognize various objects. How do they accomplish this? We attempt to simulate the underlying mechanism applied by human learners. Our model explores the possibility of utilizing the spatio-temporal and cross-modal constraints in multimodal data for perceptual categorization. The results indicate that the unimodal categorization problem can be fundamentally simplified by incorporating linguistic cues co-occurring in a natural environment. Furthermore, the model considers perceptual categorization and word-meaning mapping in an integrative framework, suggesting a unified view of different aspects of human development and learning. Hence, this work potentially provides some useful insights for further experimental studies about how the brain co-ordinates linguistic and perceptual learning, and combines information from different sensory modalities. This section provides a brief review of related work on both modelling language acquisition and multimodal learning. Subjects wore a head-mounted CCD camera to capture a first-person point of view. Visual data were collected at a resolution of 320 columns by 240 rows of pixels. Acoustic signals were recorded using a headset microphone at a rate of 22 kHz with 16-bit resolution. Six subjects, all native speakers of English, participated in the experiment. They were asked to narrate the picture book 'I went walking' in English. The book is for 1-3-year-old children and the story is about a young child who goes for a walk and encounters several familiar friendly animals. For each page of the book, there are several animals, as shown in figure 6. Subjects were instructed to pretend that they were telling this story to a child so that they should keep verbal descriptions of pictures as simple and clear as possible. We collected multisensory data when they performed the task, which were used as the training data for our computational model.. The regions of visual objects were segmented from the background based on the method described in Yu and Ballard (2004) . For each region, we applied the visual feature extraction method described in section 3.2. For acoustic signals, we implemented an endpoint detection algorithm to segment the speech stream into spoken utterances. Each spoken utterance contained one or more spoken words. Then the 'Dragon Naturally Speaking' software was employed to convert spoken utterances into text. Given a spoken utterance consisting of several spoken words, the speech recognizer converted the continuous wave pattern into a series of recognized words by considering phonetic likelihoods and grammars. In practice, the recognition rate was above 90% in our experiments. Next, we paired visual features of objects with the text of individual spoken utterances to form co-occurring word-context parallel sequences.. By applying the learning mechanism described in section 3, the present model obtained grounded lexical items, including categories of visual objects paired with their corresponding linguistic labels. There were 12 animals and some other objects (e.g. tree, basket) shown in the picture book. Compared with animals, those objects rarely occur so are barely mentioned in speech. Consequently, we did not treat them as lexical items that the model was expected to acquire. To evaluate the experimental results, we defined the following three measures: (1) Word-meaning grounding accuracy measures the percentage of the perceptual Lexical acquisition and object categorization 393 representations of objects that are correctly associated with linguistic labels. Given a visual feature, the model is expected to find related linguistic labels. Thus, the corresponding word components will be activated through their connections with category components. Likewise, given a word, the model is able to activate the corresponding components of visual prototypes that represent perceptually grounded meanings. (2) Word spotting accuracy measures the percentage of word-object pairs that are spotted by the computational model. This measure provides a quantitative indication about the percentage of grounded lexical items that can be successfully found. (3) Object categorization accuracy measures the percentage of visual features that are grouped into correct object categories.. To demonstrate more directly the role of links between perceptual categorization and linguistic development, we included two other learning conditions in this experiment. In a no-word condition (similar to the one in Waxman and Hall (1993) ), we applied Gaussian Mixture Models to cluster visual features. The clustering results were used as distinct object categories and directly associated with words. Thus, there was no interaction between association and categorization in this method, which clearly reduced the amount of computation needed. Note that the above two learning conditions are intended to simulate closely human development in a natural environment. Therefore, there are no explicit linguistic labels provided. In the third condition-the labelling condition (similar to the linguistic-cued condition in Yoshida and Smith (2005))-we assume that there is a linguistic label paired with every instance of an object. Thus, there is no ambiguity in the word-to-world mapping and every word is perfectly mapped to its meaning. This is, of course, an ideal learning condition that does not exist in a natural learning environment. The purpose here is to provide a complete evaluation of the influence of language in object categorization. The results in this condition indicate to what degree linguistic labels can enhance object categorization. In practice, we applied support vector machines (SVM) on visual data that are paired linguistic labels. With explicit teaching signals and the start-of-art classification method, this approach provides a baseline and illustrates the difficulty of categorizing visual data in the experiment. Table 1 shows the comparative results of these three learning conditions. The significant difference between the first two conditions lies in the fact that there exists a multitude of co-occurring word-to-object pairs in natural environments that infants are situated in, and modelling the links between language and category learning captures cross-modal and spatio-temporal constraints in co-occurring multimodal data. This fact shows that language can strengthen learning about object categories. It is not surprising that the labelling condition performs best with additional teaching labels of objects provided during the training. The categorization accuracy obtained from our model, however, is closer to that of a supervised labelling condition. Both learning conditions use linguistic labels to help object categorization while correlated linguistic cues are provided in the labelling condition but not in the link condition. Nonetheless, the model in the link condition simulates the possible correlations between object name learning and object categorization. By doing so, it is able to bootstrap these two advances and form a developmental feedback loop, showing that these two difficult learning problems can be fundamentally simplified by considering them in a general system. Most importantly, this observation is quite in line with the results obtained from human subjects (Waxman 2004 , Jones and Smith 2004 , Yoshida and Smith 2005 , suggesting not only that our model is cognitively plausible, but also that the emergence of links between perceptual and linguistic development can be appreciated by both human learners and the computational model.

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