Image Guided Reconstruction of Un-sampled Data: A Filling Technique for Cultural Heritage Models Abstract Cultural Heritage (CH) is one of the major fields of application of 3D scanning technologies. In this context, one of the main limitations perceived by the practitioners is the uncompleteness of the sampling. Whenever we scan a complex artifact, the produced sampling usually presents a large number of unsampled regions. Many algorithmic solutions exist to close those gaps (from specific hole-filling algorithms to the drastic solution of using water-tight reconstruction methods). Unfortunately, adding patches over unsampled regions is an issue in CH applications: if the 3D model should be used as a master document over the shape (and status) of the artwork, informed CH curators usually do not accept that an algorithm is used to guess portions of a surface.In this paper, we present a low-cost setup and related algorithms to reconstruct un-sampled portions of the 3D models by inferring information about the real shape of the missing region from photographs. Data needed to drive the surface completion process are obtained by coupling a calibrated pattern of laser diodes to a digital camera. Thus, we are proposing a simple active acquisition device (based on consumer components and more flexible than standard 3D scanning devices) to improve selectively the sampling produced by a standard 3D scanning device.After acquiring one or more images with the laserenhanced camera, an almost completely automatic process analyzes the image/s in order to extract the pattern, to estimate the laser projector intersections over the surface and M. Dellepiane ( ) · A. Venturi · R. Scopigno Visual Computing Laboratory, ISTI-CNR, Via G. Moruzzi 1, 56124 Pisa (PI), Italy e-mail: dellepiane@isti.cnr.it R. Scopigno e-mail: scopigno@isti.cnr.it determining coordinates of those points (using the consolidated triangulation approach). Then, the gathered geometric data are used to steer the hole filling in order to obtain a patch which is coherent with the real shape of the object. A series of tests on real objects proves that our method is able to recover geometrical features that cannot be reconstructed using state-of-the-art methods. Consequently, it can be used to obtain complete 3D models without creating plausible but false data. The last few years of technological development made 3D Scanning a mature technology. This is a due not only to the improvements of the acquisition devices, but also to the development of new algorithms which automatize most of the required raw data processing, and fully exploit the resources of graphics hardware.. One of the most important fields of application of 3D scanning is Cultural Heritage. There are several reasons behind this: the sampling accuracy and speed granted by this technology, the variety of different objects that can be acquired, the possibility to acquire data without touching the objects, the wide number of possible uses of the digital 3D models (from archival and restoration support to rapid prototyping).. While 3D scanning is able to provide an extremely accurate representation of an object, the final digital 3D model can suffer from a number of geometric artifacts (singular vertices, overlaps/folds, self-intersections, complex edges, holes). Some of them can be generated during the acquisition of the single range maps, while others are introduced by the several post-processing actions performed over the raw data.. Artifacts removal is a quite important subject in the Computer Graphics and Computer Vision research: while some types of artifacts can be easily detected and removed, others can present difficulties in both detection and removal. Holes are a common and unavoidable artifact in scanned meshes. It is very rare to see a complete 3D model of a complex object, obtained using 3D scanning, since usually not all the parts of a complex object can be reached by the scanner. Moreover, it is also possible that some parts are not covered due to errors or carelessness during the acquisition campaign.. Presence of holes in a 3D model implies that we have regions with missing data; if we do not want to fill up those regions with interpolated data, their presence can be distracting and annoying during visualization. Hence, several methods to automatically fill the holes were presented in literature, including both methods to fill up one gaps at the time or reconstruction methods that produce water-tight models. Most of these approaches rely on the analysis of the existing geometry of the model: even in the case of holes of medium and large size, the new geometry can be almost indistinguishable from the rest of the model. Nevertheless, hole filling is a very critical operation in Cultural Heritage applications, since the geometry created is a plausible but essentially guessed information. On the contrary, the approach of Cultural Heritage experts usually tries to avoid the creation of not reliable data. Hence, the final geometry is usually kept incomplete in the master representation, unless the hole filling is key for further applications (e.g. rapid prototyping).. We present an approach that aims to fill the holes of an uncomplete mesh by extracting information about the missing geometry from one or more images, obtained with a simple and low-cost active lighting setup. The data are obtained by analyzing images of the real object, on which a pre-defined colored pattern (which could be generated by a set of laser diodes or by a portable projector) is projected on the zone which was not covered by the scanner. Using a digital camera, it is much easier to frame partially occluded regions, since the camera and the grid of laser diodes can be arranged with a flexible and much smaller inter-distance. An example of an uncomplete model is presented in Fig. 1 , where a number of small regions of the capital were not be sampled properly (in most cases, since they were hidden either to the emitter or to the sensor of the triangulation-based scanning device). The same regions can be easily framed using a digital camera. Nevertheless, without further information it can be hard to infer data about the geometry of the object. Conversely, the triangulation of the projected laser probes gives additional information that can be used to find a shape-congruent patch to close the hole.. In our approach, each single geometric patch is obtained with a semi-automatic process. The first step is to align the image on the 3D model (this is the only manual step in our current implementation, but automatic solutions are possible also for this phase (Corsini et al. 2009)) . Then, the reflected laser pattern is extracted from the image and, given the knowledge of the calibrated projector position wrt. the camera parameters, we are able to estimate the geometry of several points lying on the object surface and corresponding to the reflected pattern. These geometric data are then used, together with the hole open border and the nearby surface, to reconstruct a patching sub-mesh which should more faithfully represent the real surface.. The paper is organized as follows. An overview of the hole filling solutions and issues is presented in Sect. 2. The requirements and solutions for the image acquisition setup are discussed in Sect. 3, while Sect. 4 describes the hole filling process. Some results and a comparison with stateof-the-art methods are shown in Sect. 5. Finally, conclusions and future work are presented in Sect. 6. Hole filling has been an important field of research in recent years. Closing holes of small size is a trivial operation. Unfortunately, 3D scanning produces many holes (usually from hundreds to thousands in the case of complex models) and many of them have a large extension, a high number of border edges and a complex shape. Examples of the complexity of the possible holes are presented in Davis et al. (2002) . In this case, the filling operation can be very long and prone to errors.. Most of the proposed approaches assume no information about the missing geometry. Hence, this information is mainly extracted from the shape of the model around the hole. These hole filling techniques can be roughly divided in two groups: volumetric and surface oriented.. In the context of the volumetric techniques, the model or the sampled data are usually immersed in a volumetric grid and all the holes are filled while reconstructing the entire shape. These methods essentially use regular (Nooruddin and Turk 2003; Ju 2004; Davis et al. 2002) or adaptive (Bischoff et al. 2005) grids. They are usually quite robust, able to deal with isles and high resolution models, since they essentially derive from the Marching Cubes approach (Lorensen and Cline 1987) . Nevertheless, there is a substantial remeshing of the geometry, and all the holes are filled (they cannot be managed selectively). These modifications could not be wanted by the user.. The surface oriented algorithms work on a single hole at a time, and the new information is usually inferred by analyzing the shape of the surface near the border of the Fig. 1 A rendering of an uncomplete model, where part of the geometry could not be acquired with laser scanner (missing regions are easily detectable especially in the bottom side of the capital) and a photograph of the real artifact hole. A simple but effective method was proposed by Parus and Kolingerová (2005) . Other approaches use Radial Basis Functions (Carr et al. 2001) or Moving Least Squares (Amenta and Kil 2004) to obtain a smooth filling surface. Another example is the method proposed by Liepa (2003) , that is able to provide very good results. It is divided in three main phases: in the first one, a rough triangulation that fills the hole is found, then the remeshing and smoothing phases produce an almost undistinguishable new surface.. Another subgroup of surface oriented approaches extract information from the analysis of all the geometry of the model. Bendels et al. (2005) and Sharf et al. (2004) extend the idea of image inpainting and texture synthesis by analyzing the model and finding surfaces whose shape is similar to the ones near the border of the hole. Then, the hole is filled using patches of already existing geometry (a recent work on the topic was presented by Becker et al. (2009) ). Park et al. (2005) use a similar idea to reconstruct both shape and appearance from scanned data.. Surface oriented approaches can obtain good results and act selectively on single holes. Unfortunately, the complexity of the algorithm can be very high when the number of border edges increases.. As already stated, the methods cited until now don't assume knowledge of the real shape the missing surface. An alternative idea is to infer missing information from an external source: Akbarzadeh et al. (2006) combine a large set of different data to complete a model of a city landscape. Analogously, it is possible to use data obtained from photogrammetry (Przybilla 2006) to fill the holes in architectural models. Nevertheless, the acquisition of these integration data can be quite cumbersome. Xu et al. (2006) proposed a much simpler source of data: a single image of the object. It is used to estimate a set of normal vectors, which generates a smooth surface which should recover the real shape of the object. Unfortunately, the results shown in the paper are obtained using renderings of a test model. No example using real images is shown.

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


Algorithms for Wireless Sensor Networks This paper reviews some of the recent advances in the development of algorithms for wireless sensor networks. We focus on sensor deployment and coverage, routing, and sensor fusion.A wireless sensor network may comprise thousands of sensor nodes. Each sensor node has a sensing capability as well as limited energy supply, compute power, memory, and communication ability. Besides military applications, wireless sensor networks may be used to monitor microclimates and wildlife habitats [45] , the structural integrity of bridges and buildings, buildings security, location of valuable assets (via sensors placed on these valuable assets), traffic, and so on. However, realizing the full potential of wireless sensor networks poses myriad research challenges ranging from hardware and architectural issues, to programming languages and operating systems for sensor networks, to security concerns, to algorithms for sensor network deployment, operation, and management. Iyengar and Brooks [20, 21] and Culler and Hong [8] provide good overviews of the breadth of sensor network research topics as well as of applications for sensor networks.This paper focuses on some of the algorithmic issues that arise in the context of wireless sensor networks. Specifically, we review algorithmic issues in sensor deployment and coverage, routing, and fusion. There is an abundance of algorithmic research related to wireless sensor networks. At a high level, the developed algorithms may be categorized as either centralized or distributed. Because of the limited memory, compute, and communication capability of sensors, distributed algorithms research has focused on localized distributed algorithms-distributed algorithms that require only local (e.g., nearest neighbor) information.In a typical sensor network application, sensors are to be placed (or deployed) so as to monitor a region or a set of points. In some applications, we may be able to select the sites where sensors are placed, while in others (e.g., in hostile environments), we may simply scatter (e.g., airdrop) a sufficiently large number of sensors over the monitoring region with the expectation that the sensors that survive the airdrop will be able to adequately monitor the target region. When site selection is possible, we use deterministic sensor

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


A Linear Spine Calculus We present the spine calculus S →−•&⊤ as an efficient representation for the linear λ-calculus λ →−•&⊤ which includes unrestricted functions (→), linear functions (−•), additive pairing (&), and additive unit (⊤). S →−•&⊤ enhances the representation of Church's simply typed λ-calculus by enforcing extensionality and by incorporating linear constructs. This approach permits procedures such as unification to retain the efficient head access that characterizes first-order term languages without the overhead of performing η-conversions at run time. Applications lie in proof search, logic programming, and logical frameworks based on linear type theories. It is also related to foundational work on term assignment calculi for presentations of the sequent calculus. We define the spine calculus, give translations of λ →−•&⊤ into S →−•&⊤ and vice-versa, prove their soundness and completeness with respect to typing and reductions, and show that the typable fragment of the spine calculus is strongly normalizing and admits unique canonical, i.e. βη-normal, forms. The internal representation of λ-calculi, logics and type theories has a direct impact on the efficiency of systems for symbolic computation that implement them such as theorem provers and logic programming languages. In particular, major gains can be achieved from even small improvements of procedures that manipulate terms extensively: unification, for instance, is a well-known bottleneck in the execution time of a logic program. For languages based on first-order terms, Prolog, for example, the natural representation of terms supports simple and fast unification algorithms. Indeed, a function symbol f applied to three arguments a, b and c, written f (a, b, c) in the syntax of Prolog, is encoded as a record consisting of the head f and the list of its arguments. This is sensible from the point of view of unification since the head of a terms must be analyzed before its arguments. Early implementations of systems embedding a higher-order term language, such as the logic programming languages Elf [Pfe94] and λProlog [Mil89, Mil01] , typically represented terms in a way that mimics the traditional definition of a λ-calculus. Ignoring common orthogonal optimizations such as the use of de Bruijn indices [dB72] or explicit substitutions [ACCL91] , the above term is parsed and encoded as (((f a) b) c). During unification, three applications (here represented as juxtaposition) must be traversed before accessing its head, possibly just to discover that it differs from the head of the term being unified. This representation is similarly inefficient when normalizing a term: in order to reduce ((λx. λy. λz. f x y z) a b c) to the above term, we need again to go through three applications before exposing the first redex.. Apparently, adopting an internal representation that treats nested applications as in the first-order case (i.e., as a head together with a list of arguments) but permits λ-abstraction would significantly improve the efficiency of higher-order unification algorithms. This approach has been studied extensively for different purposes [Bar80, Her95, DP98, DP99, Sch99, San00, DU01]. However, the complex equational theory that characterizes a λ-calculus leads to difficulties in procedures such as unification and normalization. In particular, η-conversion rules can yield instances of a same function symbol applied to a different number of arguments. This might even lead to fragmented lists of argument as the result of β-reduction (e.g., while performing unification) that need to be monitored and compacted regularly. Ultimately, such a representation may turn out to be even more complex to deal with than traditional λ-expressions. Instead, no such difficulty emerges with the trivial equational theory of first-order terms.. In this paper, we propose a variant of this idea that supports efficient head accesses, but that does not suffer from the drawbacks we just mentioned. This representation of λ-terms, that we call generically a spine calculus, is based on the observation that, in a typed λ-calculus, the use of the troublesome η-conversion rules can be limited to a preprocessing phase that expands terms to unique η-long forms, which are preserved by β-reduction. Insisting on η-long terms has the advantage of simplifying the code for procedures such as unification and normalization, of permitting easier informal descriptions of these algorithms, and more generally of reducing the complexity of studying the meta-theory of such formalisms. Moreover, λ-calculi featuring a unit type and a unit element do not admit a Church-Rosser theorem unless all terms are η-expanded [JG95] : this means that typing information must be stored and maintained in otherwise type-free procedures such as pattern unification [Mil91, Pfe91] .. The benefits of the spine calculus representation, in conjunction with explicit substitutions, have been exploited in a new implementation of the logical framework LF [HHP93] as the higher-order logic programming language Twelf [PS99] . LF is based on the type theory λ. Π , a refinement of Church's simply-typed λ-calculus λ → with dependent types. In this paper, we will instead focus on the simply-typed linear λ-calculus λ →−•&⊤ , which extends λ → with the type constructors −•, & and ⊤, derived from the identically denoted connectives of linear logic [Gir87] . We will define the corresponding spine calculus S →−•&⊤ , present translations between the two, and prove the meta-theoretical properties of S →−•&⊤ that make it adequate as an internal representation language for λ →−•&⊤ . Notice that our analysis applies to any sublanguage of λ →−•&⊤ , in particular to λ → and its extension with extensional products and a unit type, λ →&⊤ ; moreover, it can easily be extended to the treatment of dependent types.. A similar proposal for term representation was already mentioned in passing by Howard in his seminal paper [How80] . The normal forms of the spine calculus also arise as a term assignment language for uniform proofs, which form the basis for abstract logic programming languages and is based on a much richer set of connectives [MNPS91] . A thorough investigation of a related calculus on the λ → fragment has been conducted by Herbelin [Her95] . Schwichtenberg [Sch99] , Dyckhoff and colleagues [DP98, DP99, DU01] , and Espírito Santo [San00] study a version of the intuitionistic spine representation and ordinary λ-calculi in a single system which incorpo- In this paper, we have formalized an alternative presentation of the linear λ-calculus λ →−•&⊤ which can be used to improve the efficiency of critical procedures such as unification in the implementation of languages based on (linear) λ-calculi. The resulting language, the spine calculus S →−•&⊤ , strengthens the the studies of term assignment systems for sequent calculi [Her95, DP98, DP99, Sch99, San00, DU01] to encompass extensional products (&), a unit type (⊤) and linearity (−•), with the further requirement that well-typed terms be in η-long form. S →−•&⊤ terms of base type are structured similarly to the objects found in first-order term languages. In particular, their head is immediately available, an important benefit for procedures such as unification that base a number of choices on the nature of the heads of the terms they operate upon. Having extensionality built-in permits avoiding the overhead, both in terms of bookkeeping and execution time, of performing η-conversions at run time.. The intended applications of this work lie in proof search, logic programming, and the implementation of logical frameworks based on linear type theories. In particular, the spine calculus S →−•&⊤ has been designed as a first approximation of an internal representation for the type theory λ Π−•&⊤ underlying the linear logical framework LLF [Cer96, CP02] . An extension to the full language, which includes dependent types, does not appear to be problematic. The adoption of a spine calculus as an internal representation device appears to integrate well with the simultaneous use of explicit substitutions [ACCL91] . However, the details of the amalgamation of these two techniques in the presence of linearity still need to be worked out formally. The uniform derivation system given in Figure 6 .1 is a presentation of the sequent calculus for ILL →−•&⊤ that embeds restrictions on the applicability of inference rules. The strong relationship between intuitionistic fragment of sequent calculi (not necessarily linear) and term languages akin to our spine calculus has been already noticed in the literature. A first indirect reference appears in the seminal work of Howard on the types-as-formulas correspondence [How80] , although a formal spine-like calculus is not defined.. Barendregt [Bar80] relies on an term language akin to our spine calculus to study the notion of normalization in the untyped λ-calculus. Terms in this language are called Böhm trees. Huet's constructive engine [Hue89] uses some ideas reminiscent of the spine calculus in an implementation of the Calculus of Construction.. In [Her95] , Herbelin presents a systematic account of the relationship between the system LJT and the term languageλ, which extends the λ → restriction of our spine calculus with a spine concatenation operator and explicit substitutions with named variables. LJT is a variant of the implicational fragment of Gentzen's intuitionistic sequent calculus with ideas similar to the uniform provability system from the previous section: in particular the left-hand side of a sequent contains a stoup and left rules are restricted to operate only on the formula currently in focus. Since no extensionality requirement is made onλ terms, the calculus relies on concatenation to append fragmented spines. The presence of explicit substitutions provides a direct handling of the two cut-rules of this calculus.λ is defined for foundational reasons, as the target λ-calculus of a derivations-as-terms correspondence for LJT. Indeed, its reduction rules correspond to the steps in a cut-elimination procedure for LJT, so that the strong normalization theorem forλ subsumes the cut-elimination property for this logic.. In [DP98, DP99] , Dyckhoff and Pinto use the work of Herbelin to investigate the meta-theory of the sequent calculus and natural deduction presentations of intuitionistic implicational logic. They obtain a simple proof of a classical equivalence result for them by relating terms in the λ-calculus and inλ [Her95] . In [DP98] , they furthermore propose a simplification of Herbelin's proof of strong cut-elimination for LJT .. Schwichtenberg [Sch99] adopts a similar approach relative to a richer logic consisting of implication, conjunction and universal quantification. He starts from a more traditional presentation of the sequent calculus. In particular the absence of a stoup forces him to consider commutative conversions. The term calculus he proposes differs from Herbelin's by the absence of explicit concatenation operators and substitutions. It is therefore more similar to our spine calculus.. A Curry-Howard-like correspondence between a calculus akin to Herbelin'sλ [Her95] and the calculus of explicit substitution [ACCL91] is further pursued by Dyckhoff and Urban in [DU01] . They show in particular that the studied language is strongly normalizing. Espírito Santo conducts similar investigation in [San00] with an eye on η-long terms.

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


Model driven distribution pattern design for dynamic web service compositions Web service compositions are often used to realise servicebased enterprise applications. These enterprise systems are built from many existing discrete applications, often legacy applications exposed using Web service interfaces. Acceptance of these systems is often constrained by non-functional aspects, such as Quality of Service (QoS). A number of factors affect the QoS of an enterprise system, including availability, scalability and performance. There are a number of architectural configurations or distribution patterns, which express how a composed system is to be deployed. These distribution patterns have a direct impact upon the QoS of the composition. However, the amount of code required to realise these distribution patterns is considerable. Additionally, there is an increased deployment time associated with setting up different distribution patterns. We therefore propose a novel approach which combines a Model Driven Architecture using UML 2.0 for modeling and subsequently generating Web service compositions, with a method for achieving dynamic decentralised interaction amongst services with reduced deployment overheads. These approaches combined provide for the generation of dynamic Web service compositions driven by a distribution pattern model. Service-based enterprise applications are often realised by composing a number of Web services. The development of such composite Web services is often ad-hoc, without regard for non-functional requirements, and requires consid- A software engineering approach to the composition of service-based software systems is necessary. We have introduced techniques based on architectural modeling and pattern-based development. Our contribution is a modeling and transformation approach, technique and implementation for expressing the distribution pattern of a Web service composition. Our novel modeling aspect, distribution patterns, expresses how a composed system is to be deployed, providing for improved maintainability, comprehensibility, and varying QoS characteristics depending on the pattern chosen. Four modeling and transformation techniques were introduced, along with a tool (TOPMAN) which assists in the generation of an executable system.. We have also contributed a mechanism for the dynamic deployment of decentralised compositions. Our novel mechanism ILDP, preserves the autonomy of services, by enhancing the service container of each participant. This approach results in significantly reduced deployment overheads and provides a mechanism to realise distribution patterns. However, we foresee replacing WS-BPEL as our interaction logic language, as it is overly complex for our interaction logic requirements. Instead we envisage a more concise interaction logic language, possibly a subset of WS-BPEL, and a compatible interaction logic document processor.. Extensions to our modelling approach are being considered, based on integrating our approach with existing service and workflow modelling efforts [18] , which could enable us to model more complex Web service compositions. We also envisage using semantics, which could reduce the software architects workload. Currently the connections and mappings between Web services must be made manually using our modeling technique. However if semantics were present the architect would simply choose a distribution pattern, possibly from a pattern repository, and the connections and mappings would be made automatically. Two workflow management systems motivate and provide concrete implementations for two of the distribution patterns explored in this paper. However, neither system provides a standards-based modeling solution to drive the realisation of the chosen distribution pattern. The first system DECS [21] , is a workflow management system, which supports both centralised and peer-to-peer distribution patterns, albeit without any code generation element. DECS defines elementary services as tasks whose execution is managed by a coordinator at the same location. The solution is based on OPENFlow [12] which has a GUI for workflow management and is CORBA based. The second system SELF-SERV [20] , proposes a declarative language for composing services based on UML 1.x statecharts. SELF-SERV provides an environment for visually creating a UML statechart which can subsequently drive the generation of a proprietary XML routing table document. Pre-and postconditions for successful service execution are generated based on the statechart inputs and outputs. A related paper [3] provides some interesting performance metrics to confirm the advantages of peer-to-peer execution over centralised execution.. From the modeling perspective Grønmo et al. [18, 6] , consider the modeling and building of compositions from existing Web services using MDA, an approach similar to ours. However, they consider only two modeling aspects, service (interface and operations) and workflow models (control and data flow concerns). The system's distribution pattern is not modeled, resulting in a fixed centralised distribution pattern for all compositions. Their modeling effort begins with the transformation of WSDL documents to UML, followed by the creation of a workflow engine-independent UML 1.4 activity diagram (PIM), which drives the generation of an executable composition. Additional information required to aid the generation of the executable composition is applied to the model using UML profiles. A tool called UMT [19] is provided to support their technique.. Enabling distribution patterns such as peer-to-peer requires considerable work. A strategy, utilised by us, is introduced in [4] and described in [15] , where workflow agents (ILDPs in our approach) are placed as proxies, at each participant to manage the distributed composition. These workflow agents manage the distributed composition by communicating directly to each other. The authors also consider build time and runtime issues of decentralisation. However, the problem of deploying decentralised compositions is left open, resulting in considerable deploy time overheads. We propose a mechanism for facilitating the dynamic deployment of decentralised compositions. In this section, we provide some background to existing modeling approaches, present some distribution patterns and introduce some issues related to decentralised composition.. There is a subtle difference between two of the modeling aspects within a Web service composition, namely workflows and distribution patterns [21] . Both aspects refer to the high level cooperation of components, termed a collaboration, to achieve some compound novel task [17] . Here, we consider workflows as compositional orchestrations, whereby the internal and external messages to and from services are modeled, as well as the business logic, from the perspective of only one of the participants in the composition. In contrast, distribution patterns are considered compositional choreographies, where only the external messages between services are modeled. Distribution patterns, as a compositional choreography, consider only the message flow between services. As such, a choreography can express how a system would be deployed. The compositional orchestration of these services are not modeled here, as there are many existing approaches [6, 10] . In fact the two approaches could be combined to provide a more complete model of the composition from both the workflow and distribution pattern perspectives.. Distribution patterns in MDA terms are a form of platformindependent model (PIM), because the patterns are not tied to any specific workflow specification language. We consider there to be four basic distribution patterns, which are listed below and elaborated in [5] .. • Centralised. • Decentralised or Peer-to-Peer. • Ring TOPMAN (TOPology MANager) is our solution to enabling distribution pattern modeling using UML 2.0 and subsequent dynamic Web service composition generation. The only technologies required by the tool are the Java runtime and both an XML and XSLT parser. The tool implementation is illustrated in Figure 7 . The UML 2.0 model generator uses XSLT to transform the WSDL interfaces of the Web services participating in the composition, to a UML 2.0 activity diagram, which generates, using XML DOM, an XMI 2.0 [11] document. XMI is the XML serialisation format for UML models. The model generated includes a reference to our predefined UML profile for distribution patterns, which is also serialised to XMI 2.0.. A number of tools may be used to describe the distribution pattern. IBM's commercial tool Rational Software Architect (RSA) is compatible with XMI 2.0 and supports many of the UML 2.0 features. The tool has a GUI which allows the software architect to define the distribution pattern. Upon completion, the model can be exported back to XMI for further processing by TOPMAN. An alternative to IBM's commercial tool is UML2, an open source tool supporting UML 2.0, which allows the model to be viewed and manipulated in an editor.. The distribution pattern generator uses XSLT to transform the UML 2.0 model to a DPL instance document. The DPL document instance is then verified by an XML validating parser. Finally the DPL document instance is used to drive the executable system generator. The executable system generator creates three distinct types of documents. XSLT and XML DOM are used to generate the interaction logic (realised here using WS-BPEL). WSDL interfaces and ILDP engine specific deployment descriptor documents, required by an ILDP compatible engine to participate in a composition, are also generated. Each participant in the composition must have an ILDP engine installed to enact interaction logic.. Finally, depending on the distribution pattern chosen, the generated interaction logic, interface and deployment descriptor documents are distributed to the participants in the composition by the deployment engine. The deployment engine creates SOAP messages containing these documents and sends them to the ILDP enhanced service container, via the ILDP interface of each participant. Here we use WS-BPEL to implement the interaction logic, WSDL to implement a wrapper which exposes the interaction logic processing capabilities, and the ActiveBPEL specific Process Deployment Descriptor (PDD) to describe the composition participants. The ActiveBPEL workflow engine is used as the enactment engine which processes the interaction logic.

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


The symmetric group defies strong Fourier sampling We Many problems of interest in quantum computing can be reduced to an instance of the Hidden Subgroup Problem (HSP). We are given a group G and a function f on G with the promise that, for some subgroup H ⊆ G, f is invariant precisely under translation by H: that is, f is constant on the left cosets of H and takes distinct values on distinct cosets. We then wish to determine the subgroup H by querying f .For example, in Simon's problem [32] , G = Z n 2 and f is an oracle such that, for some y, f (x) = f (x + y) for all x; in this case H = {0, y} and we wish to identify y. In Shor's factoring algorithm [31] G is the group Z * n where n is the number we wish to factor, f (x) = r x mod n for a random r < n, and H is the subgroup of Z * n whose index is the multiplicative order of r. Both Simon's and Shor's algorithms use the following approach, referred to as the standard method or Fourier sampling [4]: (1) We prepare a two-sector register, with the first sector in a uniform superposition over the elements of G, and the second initialized to zero. (2) We use the value x, and query (or reversibly calculate) f (x) in the second sector. (3) We measure the second sector. This leaves the first sector in a uniform superposition over a uniformly-random left coset, |cH = (1/ |H|) h∈H |ch . (4) We apply the quantum Fourier transform on G to the state in the first sector, and then measure the result.In both Simon's and Shor's algorithms, the group G is abelian; in this case, polynomially many (in log |G|) experiments of this type determine H. In essence, each experiment yields a random element of the space H ⊥ perpendicular to H's characteristic function, and we are done as soon as these elements span H ⊥ .While the nonabelian hidden subgroup problem appears to be much more difficult, it has very attractive applications. In particular, solving the HSP for the symmetric group S n would provide an efficient quantum algorithm for the Graph Automorphism and Graph Isomorphism problems (see Jozsa [18] for a review). Another important motivation is the relationship between the HSP over the dihedral group with hidden shift problems [5] and cryptographically important cases of the Shortest Lattice Vector problem [26] .Despite fairly intense work on the problem, efficient algorithms for the HSP are only known for specialized families of nonabelian groups, including wreath products Z k 2 Z 2 [27] (and, more generally, semidirect products K Z k 2 where K is of polynomial size), groups whose commutator subgroup is of polynomial size [17], "smoothly solvable" groups [8] , and some metacyclic groups [22, 15] . Ettinger and Høyer [6] showed that Fourier sampling can solve the HSP for the dihedral groups D n in an informationtheoretic sense: specifically, a polynomial number of experiments gives enough information to reconstruct the subgroup, though it is unknown how to explicitly determine H from this information in polynomial time.The Fourier transform and strong Fourier sampling. The Fourier transform over a nonabelian group, fundamental to the process of Fourier sampling, is defined in terms of the linear representations of the group. For an abelian group G, the Fourier basis functions are homomorphisms φ : G → C, such as the familiar exponential function φ k (x) = e 2πikx/n for the cyclic group Z n . In the nonabelian case, there are not enough such homomorphisms to span the space of all C-valued functions on G; the picture is completed with the representations of the group, namely homomorphisms ρ : G → U(V ) where U(V ) is the group of unitary matrices acting on some C-vector space V of dimension d ρ . An irreducible representation ("irrep") is one

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


An Improved Exact Algorithm for the Domatic Number Problem The 3-domatic number problem asks whether a given graph can be partitioned into three dominating sets. We prove that this problem can be solved by a deterministic algorithm in time 2.695n (up to polynomial factors In addition, we show that the 3-domatic number problem can be solved for graphs G with bounded maximum degree A (G) by a randomized algorithm, whose running time is better than the previous bound due to Riege and Rothe fRR05j whenever A(G) > 5.Our new randomized algorithm employs Schoning's approach to constraint satisfaction problems fSch99, SchO2j. A dominating set in an (undirected) graph G is a subset D of the vertex set V of G such that the closed neighborhood of D equals V. The domatic number problem asks for a partition of V into a maximum number of disjoint dominating sets. This number, denoted by 6(G), is called the domatic number of G.. The domatic number problem arises in the area of computer networks and is related to the tasks of distributing resources and of locating facilities in the network. This problem has been intensely studied, see, e.g., [CH77, Far84, For each k > 3, it is NP-complete to determine whether or not the domatic number of a given graph is at least k, see Garey and Johnson [GJ79] . That is why we cannot expect to find a polynomial-time algorithm that solves the problem.. Among the various ways of coping with NP-hard problems (such as approximation, randomization, or parameterized complexity), much attention has been paid to designing exact exponential-time algorithms for such problems that are better than the trivial exponential-time algorithm. In particular, if the trivial algorithm runs in time 3n but one is able to find a cn algorithm for this problem with c < 3 (up to polynomial factors), then [YamO5] .. We show that these two algorithms can be combined so as to yield a 2.695n time algorithm for the 3-domatic number problem. In addition, we prove that there is a randomized algorithm solving this problem for graphs with bounded maximum degree, which improves the previous bound due to Riege and Rothe [RR05] . Here, we apply Sch6ning's results for constraint satisfaction problems [Sch99, SchO2] . In this paper, we considered the 3-domatic number problem, which asks whether a given graph can be partitioned into three dominating sets, and we have shown how to improve on existing exact and randomized exponential-time algorithms for this problem.. In particular, by reducing 3-DNP to the NAE-SAT problem and by combining Yamamoto's algorithm [YamO5] with the algorithm by Fomin et al. [FGPS05] , we obtained an exact (i.e., deterministic) algorithm that runs in time (9(2.695n ).. This result improves on the previously best bound of 0(2.8805n) for the 3-domatic number problem, which was achieved by Fomin et al. [FGPS05] . An even earlier and to our knowledge, the first nontrivial bound for this problem is due to Riege and Rothe [RR05] who presented an 0(2.9416n) algorithm.. We also described a randomized algorithm solving the 3-domatic number problem for graphs G with bounded maximum degree A (G). Whenever A (G) > 5, the running time of our new randomized algorithm is better than the previously known bound, which is due to Riege and Rothe [RR05] . These results are summarized in Table 1 . Our new randomized algorithm makes use of Sch6ning's algorithm for constraint satisfaction problems [Sch99, SchO2] .

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


An Empirical Analysis of the Relationship Between IT Training Sources and IT Value Information technology (IT) training has been identified as a key factor for the success of IT applications and the most frequently applied coping mechanism to handle changing IT. However, there is a question as to how IT training has to be conducted to obtain desired outcomes (higher levels of IT value). This paper analyses the presence of IT training sources used by firms and examines the influence on IT business value. Here, IT training is studied according to three IT training sources: in-house IT training, outside IT training, and self IT training by employees. In addition, differences in IT training sources are analysed according to two contingency factors: business size and business industry. Results show a positive relationship between IT training sources (outside and self IT training) and IT business value and confirm that IT training sources are positively related to business size and differ moderately by business industry. Today, the contribution of information technologies (ITs) to economies is unquestioned (Stehr, 2007) . IT has been considered fundamental for the development of productivity and knowledge-intensive products and services. Jobs demanding IT skills from employees have increased exponentially all over the world. For example, it is estimated that today there are 4.2 million IT practitioners within the European Union (EU) and that approximately 180 million people are using ITs at work (CEPIS, 2007) . In addition, in 2005 the share of employed persons in the EU using computers in their normal work routine exceeded 50% for the first time (Eurostat, 2006) . New hardware, software, and mobile computational devices are constantly being launched, and it seems that this trend will continue in the future (Strohecker, 2005) . Companies are committing more and more financial resources in order to acquire the latest technology available. This rapid growth faces a barrier, however; namely the capability of the labour force to understand and use IT applications. In this sense, IT investments often are underused, or are not used appropriately; this is mainly because employees do not possess sufficient IT skills to use them. This fact may cause IT to become obsolete before it pays off.. Most IT experts recognize that IT training is critical to achieve productive use of the technology (Yi & Davis, 2001 ). This has also been confirmed by research. IT training has been identified as a key factor for the success of IT applications (McLean, Kappelman, & Thompson, 1993) . Sircar, Turnbow, and Bordoloi (2000) found a positive relationship between IT training and firm performance. Furthermore, investigations have shown a positive significant correlation between IT skills and efficient use of IT resources (Lee, Kim, & Lee, 1995) and other studies' findings (e.g., Mata, Fuerst, & Barney, 1995; Ravichandran & Lertwongsatien, 2005) confirmed that IT skills may be source of competitive advantage. Thus, IT training is an important link to productive IT use, which in turn may affect IT value. Nonetheless, there is a question as to how IT training has to be conducted to obtain desired outcomes (higher levels of IT value).. The training process can be divided into three phases (Compeau, Olfman, Sein, & Webster, 1995) : (1) the initiation phase, which is concerned with needs assessments and the design and development of training materials; (2) the formal training and learning phase, which refers to the training methods used (lectures, computer-based, case studies, videotapes, etc.) and choice of training sources (outside, in-house, and self IT training by trainees); and (3) the post-training phase, which examines the long-term effects of training in terms of its influence on workplace behaviours. This research focuses on the second phase, the choice of training IT sources (in-house, outside, and self-training by employees), and presents three main contributions. First, it provides knowledge about the IT training sources used by firms. Second, the effect of IT training sources on IT business value is assessed. Finally, the presence of these training sources is analysed according to two contingency factors: business size and business industry.. The paper consists of seven sections and is structured as follows. Section 2 reviews the relevant literature. In section 3, hypotheses are specified. Following that, the methodology used for sample selection and data collection is discussed in section 4. Then, data analysis and results are examined. Finally, the paper ends with a discussion of research findings, limitations and concluding remarks. The results indicate that IT training is widespread among Spanish firms, since 66.9% out of all analyzed companies was employing at least one type of IT training source. The most frequently found training source was self IT training by employees. Specifically, 51.8% of the sample was using self IT training. In addition, this type of training was found in almost 80% of firms that have at least one form of training. Moreover, 44.3% were using outside IT training and less than 30% of all analyzed companies presented in-house IT training. These results confirm that firms make extensive use of IT training and support previous research studies, suggesting the importance of IT skills and training. For instance, Benamati and Lederer (2001) found that education and training was the most frequently applied coping mechanism to handle changing IT. Mata et al. (1995) found that out of four IT attributes-capital requirements, proprietary technology, technical skills, and managerial IT skills-only IT managerial skills are likely to be a source of competitive advantage. Ravichandran and Lertwongsatien (2005) found that intangible IT resources such as IT skills are critical determinants of how IT is deployed in the organization. The results showed, as hypothesized, that the presence of IT training sources is positively related to business size. This finding is not surprising, since larger businesses usually allocate greater financial, technological and personnel resources to the development and implementation of ITs (Soto-Acosta, 2008). This result confirms Westhead and Storey's (1997) argument, which suggested that employees in small and medium-size enterprises are much likely to receive training than their counterparts in larger firms, because management is not aware of the benefits of training and considers that the costs associated with training may exceed the benefits to be derived from it. In addition, this finding supports other recent research that analyzed ITs adoption according to business size. For instance, Zhu et al., (2003) measured business size by the number of employees and demonstrated that larger size firms are more likely to adopt e-business. Similarly, Teo and Pian (2004) found evidence of a positive link between web site adoptions and firm performance.. Furthermore, results demonstrate that the presence of IT training sources differs by business industry. The differences appeared for in-house and self IT training, where service firms presented higher levels of adoption, while for in-house IT training differences were not found. This result supports existing information systems literature. For instance, Goode and Stevens (2000) found business industry significant in the adoption of Internet connection, showing service industries to be the largest adopters, followed by retailers and then manufacturers.. Finally, the empirical results showed a positive relationship between IT training sources (outside and self IT training) and IT business value. The lack of relationship between in-house training and IT business value lead us to believe that this may be the reason why firms are using less this type of training. This findings confirm previous studies that found a positive relationships between IT skills/training and business value (Benamati & Lederer, 2001; Mata et al., 1995; Ravichandran & Lertwongsatien, 2005; Sircar et al., 2000) and suggest that firms may obtain better results if the use outside IT training or self IT training instead of in-house IT training.

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


Optimum control limits for employing statistical process control in software process Abstract-There is an increased interest in using control charts for monitoring and improving software processes, particularly quality control processes like reviews and testing. In a control chart, control limits are established for some attributes and, if any point falls outside the limits, it is assumed to be due to some special causes that need to be identified and eliminated. If the control limits are too tight, they may raise too many "false alarms" and, if they are too wide, they may miss some special situations. Optimal control limits will try to minimize the cost of these errors. In this paper, we develop a cost model for employing control charts to software process using which optimum control limits can be determined. Our applications of the model suggest that, for quality control processes like the inspection process, the optimum control limits may be tighter than what is commonly used in manufacturing. We have also implemented this model as a web-service that can be used for determining optimum control limits. A process is an organization of man, machine, and methods into work activities to produce desired outputs [10] . The outputs produced by a process can be characterized by some quality attributes, the values of which generally show some variation. The causes of variation can be classified as natural causes (also called common causes) or assignable causes (also called special causes). Natural causes are those that are inherent in the process and that are present all the time. Assignable causes are those that occur sometimes and that can be prevented. A process is said to be under statistical control if all the variation in the attributes is caused by natural causes [23] , [33] .. To keep a process operating under statistical control, it is essential to continuously monitor its performance and identify when it goes out of control. Control charts are common tools that have been used for decades for monitoring manufacturing processes. In a control chart, some quality attribute is chosen and the values of the attribute for samples taken from the production at some time intervals are plotted. Some control limits are established and, if a point falls outside the control limits, an assignable cause is assumed to be present. The selection of control limits determines how frequently "false alarms" will be raised (i.e., a point falls outside the control limits even though there is no assignable cause) and how frequently assignable causes are missed (i.e., an assignable cause is present but the point does not fall outside the control limits). The control limits in manufacturing processes are generally set to 3 (where is the standard deviation) around the mean. These control limits aim to minimize the overall loss due to out of control processes and false alarms.. Though designed for manufacturing processes, SPC concepts can be applied to software process and there is now increased interest in the use of control charts for software processes. Currently, the approach is to use some control chart for some miniprocesses within the overall software process. The process for which control charts are being most commonly used is the inspection/ review process [8] , [11] , [12] , [31] . SPC concepts have also been used for testing [3] , [4] , [19] , [31] , maintenance [30] , [32] , personal process [27] , and other problems [5] , [10] . The use of control charts for software processes is likely to continue to grow, particularly since frameworks like CMM [26] expect some usage of control charts at higher maturity levels.. In software processes, as data points are not that frequent, generally, each data point is individually plotted and evaluated. Hence, charts like the XmR or the U charts are more suitable for software [14] , [31] , [34] and are the most commonly used charts, as reported in the survey [28] . On the other hand, in manufacturing, the " X XR chart, which employs a sampling based technique, is most commonly used. Consequently, modeling and analysis for selection of control limits for optimal performance has also focused on " X XR charts (a survey of some of the models for economic design of control charts is given in [16] , [24] ). In addition, there are two other differences between manufacturing and software processes that have a bearing on proper design of control charts:. . The primary focus of using control charts in manufacturing is to bring the process back in control by removing assignable causes so that the future production losses are minimized. With software processes, besides improving the process, an important objective of using control charts is to control the product also. For example, when using control charts for an inspection process, if a point falls outside the control limits, besides the process improvement actions like improving the checklist, inevitably, product improvement actions like rereviews, scheduling extra testing is also taken. In [14] (which is perhaps the first paper on the use of SPC in software), Gardiner and Montgomery suggest "rework" as one of the three actions that management should take if a point falls outside the control limits The use described in [8] clearly shows this aspect of product control. The survey of high maturity organizations also indicates that project managers also use control charts for project-level control [21] . Due to this use for product-control, project managers are more likely to want potential warning signals to be pointed out, rather than miss such signals, even if it means more false alarms. . The cost parameters that affect the selection of control limits are likely to be quite different in software processes. For example, if a manufacturing process has to be stopped (perhaps because a point falls outside the control limits), the cost of doing so can be quite high. In software, on the other hand, the cost of stopping a process is minimal as elaborate "shutdown" and "startup" activities are not needed. Similarly, the cost of evaluating a point that falls outside the control limits is likely to be very different in software processes as compared to manufacturing processes. Due to these differences, it is reasonable to assume that, to get the best results, control charts will need to be adapted to take into account the characteristics of the software process. In this paper, we examine the issue of setting control limits when control charts are used in software processes. We will focus our attention on the quality control processes, in particular, the review/inspection process. (The reader is referred to [13] , [15] for further information on the inspection process.). We develop a model for applying control charts to the review process. Using this model, the total cost of process control as a function of control limits is determined. This cost function is then used to numerically compute the optimum control limits at which the total cost is minimized. We are now making the software available as a web service that a process designer can use to determine the optimum control limits by giving the values of the different parameters. By using the model, a process designer can set the control limits such that the overall cost of employing control charts is minimized.. In the next section, we provide an overview of control charts and their use in software process, including an example. In Section 3, we describe our model and the assumptions we make. The overall cost of using a control chart and determining the control limits that will minimize this cost is discussed in Section 4. The section also describes how the model is numerically solved and gives the URL of an experimental software that can be used by process designers to apply this model to their process parameters. Section 5 gives a few examples to illustrate the use of the model. One example uses the data from a real organization and discusses how that data was collected. Sensitivity analysis of the model is discussed in Section 6 and Section 7 contains the conclusion. This paper discusses the use of statistical process control and control charts to software quality control processes like reviews and testing. As the use of control charts in software has begun in recent years, standard charting techniques from manufacturing are used. We argue that, for applying control charts, software processes differ from manufacturing processes since the focus is also on project level control and the cost parameters are different. Due to these, the 3 control limits that are frequently used in manufacturing can become unsuitable for software.. To find the optimum control limits, a cost model of software quality process is presented. The model estimates the cost of a failure-repair cycle of quality process using some process parameters like average cost of examining a false alarm, average cost of detecting and fixing a defect, expected cost of detecting and fixing a defect if it passes through the current phase, applied control limits, etc. Then, for a given set of process parameters, we compute the control limits at which the total cost of process is minimum.. We have applied the model to some published data and data on code reviews from one high-maturity software organization. These examples suggest that using 3 may not be suitable for software processes-in software processes, tighter control limits are perhaps better.. During this analysis, we have made some simplifying assumptions, like defect density for reviews having a normal distribution, and have considered only the basic rule of a point falling outside the control limits for detecting an out-of-control situation. We have not considered the impact of supplementary rules for detecting an out-ofcontrol situation, which can make control charts more sensitive to process shifts [6] .. We are currently web-enabling our analysis software, such that any process designer can input the parameters for a process and get the cost curve and the optimum control limits. This facility will be publicly available shortly. A trial version is available at www.cse.iitk.ac.in/research/software. Ashish Saxena received the bachelors degree in computer science and engineering from Barkatullah University, Bhopal, in 1999, and the MTech degree in computer science and engineering from the Indian Institute of Technology, Kanpur, in 2001. He is currently an associate software engineer at Veritas Software India Pvt Ltd, Pune. His areas of interest are operating systems, software process and software quality, and algorithms.. . For more information on this or any computing topic, please visit our Digital Library at http://computer.org/publications/dilb.

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


A proposal for a standard interface between Monte Carlo tools and one-loop programs Abstract: Many highly developed Monte Carlo tools for the evaluation of cross sections based on tree matrix elements exist and are used by experimental collaborations in high energy physics. As the evaluation of one-loop matrix elements has recently been undergoing enormous progress, the combination of one-loop matrix elements with existing Monte Carlo tools is on the horizon. This would lead to phenomenological predictions at the next-toleading order level. This note summarises the discussion of the next-to-leading order multileg (NLM) working group on this issue which has been taking place during the workshop on Physics at TeV colliders at Les Houches, France, in June 2009. The result is a proposal for a standard interface between Monte Carlo tools and one-loop matrix element programs.Dedicated to the memory of, and in tribute to, Thomas Binoth, who led the effort to develop this proposal for Les Houches 2009. Thomas led the discussions, set up the subgroups, collected the contributions, and wrote and edited this paper. He made a promise that the paper would be on the arXiv the first week of January, and we are faithfully fulfilling his promise. In his honour, we would like to call this the Binoth Les Houches Accord. Monte Carlo event generators are of major importance in high energy physics as tools to simulate scattering processes defined within the Standard Model or one of its extensions. Probability distributions of events are determined from matrix elements which are defined in perturbation theory. At present there exists a plethora of highly developed Monte Carlo (MC) event generators which are based on tree matrix elements and which use sophisticated methods for matrix element generation and phase space integration [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] . In combination with parton showers and hadronisation models, realistic event distributions can be obtained [15] [16] [17] [18] [19] [20] . In predicting absolute rates, these leading order calculations are plagued by uncertainties due to the missing higher order terms. Note that N -jet observables scale like α N S (µ R ) and are thus very sensitive to the renormalisation scale (µ R ) choice which can not be inferred from first principles. In the case of electroweak corrections, higher order terms can become sizable at high energies, i.e. of the order of ten percent, due to large electroweak Sudakov logarithms. For precise predictions and simulations of collider data, it would be highly desirable to take such corrections into account.. Together with real-emission corrections, virtual corrections contribute to NLO calculations too, so that one is faced with the problem of calculating one-loop Feynman diagrams. The evaluation of this family of diagrams has seen major progress in the last few years. Especially in the last two years, many processes of the Les Houches experimenters wishlist have been evaluated . Until recently, the bottleneck has been the numerically stable and efficient evaluation of these one-loop matrix elements. Unitarity-based methods, but also improvements of Feynman-diagram-based methods, have now matured to the point where the evaluation of the one-loop matrix elements is no longer the stumbling block. As stated above, the evaluation of tree-matrix elements is well under control and the corresponding MC tools can be used for the evaluation of the leading order (LO) and next-to-leading order (NLO) real emission contributions in full NLO computations. Together with methods to treat the inherent infra-red singularities, everything is in place to combine tools of different communities and positive synergy effects can be expected from such an initiative.. Various groups, using different methods, are meanwhile able to make NLO predictions for partonic processes with up to four final-state particles [21, 23, 28, 34, 40] . Several groups aim for an automated evaluation of one-loop matrix elements [42] [43] [44] [45] [46] [47] [48] [49] [50] or provide program packages for certain classes of processes. Thus a good coverage of next-to-leading order processes relevant for the LHC is in reach.. The incorporation of one-loop matrix element information into existing tree-level Monte Carlo tools is feasible due to the inherent modularity of higher order calculations, as will be discussed below. Note that such a synthesis would speed up the production of NLO results considerably because the loop calculator would be dispensed from dealing with the tree-like parts of the computation and phase-space integration issues. Of course, numerical stability of the one-loop matrix element, at least in a certain region of phase space (to be specified by the provider), has to be guaranteed. For the experimentalist, such a coherent approach would allow to use familiar tools, instead of dealing with many different stand-alone computer codes.. The members of the working group on next-to-leading order multi-leg processes have extensively and constructively discussed this issue during the Les Houches workshop in June 2009. This document summarises the discussion of the working group and provides a proposal for a standardised interface between Monte Carlo tools and one-loop programs.. A short outline of the structure of one-loop computations is provided in section 2 to set the stage for the proposal of the interface in section 3. Section 4 contains details on how to implement such an interface and in section 5 an extension to electroweak corrections is discussed. The article closes with a summary and gives an outlook on further extensions of the proposed Les Houches Accord.

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