Drawing trees in a streaming model Abstract. We introduce a data stream model of computation for Graph Drawing, where a source produces a graph one edge at a time. When an edge is produced, it is immediately drawn and its drawing can not be altered. The drawing has an image persistence, that controls the lifetime of edges. If the persistence is k, an edge remains in the drawing for the time spent by the source to generate k edges, then it fades away. In this model we study the area requirement of planar straight-line grid drawings of trees, with different streaming orders, layout models, and quality criteria. We assess the output quality of the presented algorithms by computing the competitive ratio with respect to the best known offline algorithms. We consider the following model. A source produces a graph one edge at a time. When an edge is produced, it is immediately drawn (i.e., before the next edge is produced) and its drawing can not be altered. The drawing has an image persistence, that controls the lifetime of edges. If the persistence is infinite, edges are never removed from the drawing. Otherwise, suppose the persistence is k, an edge remains in the drawing for the time spent by the source to generate k edges, and then it fades away.. Studying this model, which we call streamed graph drawing, is motivated by the challenge of offering visualization facilities to streaming applications, where massive amounts of data, too large even to be stored, are produced and processed at a very high rate [12] . The data are available one element at a time and need to be processed quickly and with limited resources. Examples of application fields include computer network traffic analysis, logging of security data, stock exchange quotes' correlation, etc.. For the user of the visualization facility it is natural to associate any graphic change with a new datum coming from the stream. Hence, moving pieces of the drawing would be potentially ambiguous. On the other hand, the drawing should have a size as limited as possible.. Although streamed graph drawing is related to incremental and dynamic graph drawing, it is qualitatively different from both. In incremental graph drawing the layout is constructed step by step according to a precomputed vertex ordering that ensures invariants regarding, e.g., its shape [3, 7] . In streamed graph drawing the order cannot be chosen. Dynamic graph drawing [4, 11, 13] usually refers to drawing sequences of graphs, where drawings of consecutive graphs should be similar. Insertions and/or deletions of vertices/edges are allowed and the current graph must be drawn without knowledge of future updates. However, the current layout is only weakly constrained by previous drawings. In streamed graph drawing modifications concern only single edges and previous layout decisions may not be altered.. While there is some work on computing properties of streamed graphs (see, e.g., [1, 5, 8] ), very little has been done in the context of graph drawing. A result that applies to streamed graph drawing with infinite persistence is shown in [13] in what is called no change scenario. In that paper, a graph of maximum degree four is available onevertex-at-time and it is drawn orthogonally and with a few crossings.. We consider both a finite persistence and an infinite persistence model. Our results in these models concern the area requirement for planar straight-line grid drawings of trees, where we assume that the tree is streamed in such a way that the subtree to be drawn is connected. Since a streamed graph drawing algorithm is a special case of an online algorithm, it is reasonable to assess its output quality in terms of its competitive ratio with respect to the best known offline algorithm. The obtained results are summarized in Table 1 , where n is the number of vertices of the current graph. For each type of streaming order and for each class of trees investigated within each model, the table reports the competitive ratio of a (specific) drawing algorithm, and the corresponding lemma/theorem. The table puts in evidence the practical applicability of the finite persistence model. On the other hand, the results on the infinite persistence model show the intrinsic difficulty of the problem. In fact, in the paper we prove that a large family of algorithms for the infinite persistence model requires Ω(2 n 8 /n) competitive ratio to draw binary trees (see Lemma 5) .. Another way to interpret our results on the infinite persistence model is the following: All the area-efficient tree-drawing algorithms known in the literature have the capability to inspect the entire tree for exploiting some balancing consideration. In the infinite persistence model we ask the question of which is the achievable area bound if such an inspection can not be done. This paper is organized as follows. In Sect. 2 we introduce the concept of streamed graph drawing. Area requirements for tree drawings in our two main models are derived in Sects. 3 and 4, and we conclude with directions for future work in Sect. 5.

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


Visibility Culling for Time-Varying Volume Rendering Using Temporal Occlusion Coherence Typically there is a high coherence in data values between neighboring time steps in an iterative scientific software simulation; this characteristic similarly contributes to a corresponding coherence in the visibility of volume blocks when these consecutive time steps are rendered. Yet traditional visibility culling algorithms were mainly designed for static data, without consideration of such potential temporal coherency. In this paper, we explore the use of Temporal Occlusion Coherence (TOC) to accelerate visibility culling for time-varying volume rendering. In our algorithm, the opacity of volume blocks is encoded by means of Plenoptic Opacity Functions (POFs). A coherence-based block fusion technique is employed to coalesce time-coherent data blocks over a span of time steps into a single, representative block. Then POFs need only be computed for these representative blocks. To quickly determine the subvolumes that do not require updates in their visibility status for each subsequent time step, a hierarchical "TOC tree" data structure is constructed to store the spans of coherent time steps. To achieve maximal culling potential, while remaining conservative, we have extended our previous POF into an Optimized POF (OPOF) encoding scheme for this specific scenario. To test our general TOC and OPOF approach, we have designed a parallel time-varying volume rendering algorithm accelerated by visibility culling. Results from experimental runs on a 32-processor cluster confirm both the effectiveness and scalability of our approach. It has become increasingly common for scientists to model complex physical phenomena using large-scale computer simulations. The dynamic nature of such physical simulations typically generates massive time-varying volumetric datasets. One example is the Richtmyer-Meshkov Turbulent Simulation [22] at Lawrence Livermore National Laboratory. This simulation is designed to study instabilities at the interface between two gases of different densities, * gao.52@osu.edu. Currently affiliated with Oak Ridge National Lab.. † hwshen@cis. and produces datasets containing hundreds of time steps, each being 7.5 gigabytes in size. Astrophysics simulations of supernovae [21] performed at Oak Ridge National Laboratory have generated several terabytes of data per run and will produce even larger datasets in the near future. Although past research has explored a variety of techniques for visualizing large-scale datasets, with both static and time-varying data [3, 26, 19, 9] , major challenges remain to efficiently store, process and visualize such massive datasets at interactive rates, especially with the increasingly high resolutions required.. A central obstacle to efficient time-varying data visualization stems from the ever-widening disparity between the available I/O, memory and computing bandwidth, and the rapidly increasing amount of data to be visualized. Various aspects of data coherence could be exploited to reduce the amount of data that pass through the visualization pipeline. Coherence in both space and time can be applied as a means of acceleration. Often, large datasets are partitioned into spatial blocks. Here we refer to all blocks residing in the same spatial location over time as a set of "co-spatial" blocks. A number of different types of coherence can be leveraged among cospatial blocks. Many existing algorithms focus on coherence in raw data values among co-spatial blocks. If a set of co-spatial blocks do not vary over time, then much I/O and computing overhead can be saved.. Previous research [15, 17, 11, 4] has suggested that a considerable portion of a large dataset is often invisible due to the spatial occlusion. We hypothesize that the visibility of a set of co-spatial blocks could also be correlated over time. In fact, we observe that an invisible block at time step t often remains invisible at time step t + t ( t is a small integer value), especially when the view angle doesn't change significantly over the course of the entire rendering sequence. An obvious approach to capitalize on visibility culling in time-varying volume rendering might be to apply a standard static data visibility culling scheme repeatedly to each individual time step. However, this simplistic approach will likely incur unnecessary visibility estimation overhead for subsequent time steps, without utilizing the visibility coherence. A modified scheme is required to apply minimal re-computation of the visibility from time step to time step. Such extensions to culling algorithms should also maintain high efficiency in the context of accelerating existing parallel solutions. In this paper, we present our work to develop an efficient visibility culling framework for scalable parallel volume rendering of large-scale time-varying datasets.. The remainder of this paper is organized as follows. The related work of visibility culling and time-varying data visualization are briefly discussed in Section 2. The overview and details of our visibility culling scheme for time-varying volume rendering and the experimental results are presented in Sections 3 through 7. In Section 8, we summarize our contributions and discuss future work. In this paper, we have introduced an algorithm based on temporal occlusion coherence that is able to perform coarse-grained visibility culling for large-scale time-varying volume rendering with effectiveness, efficiency and parallel scalability. There are three essential components to this algorithm: OPOF encoding of opacities, block fusion to determine temporal occlusion coherence, and a TOC tree data structure to facilitate highly-efficient runtime visibility deter- mination. A parallel time-varying volume rendering algorithm accelerated by visibility culling was implemented to demonstrate the effectiveness of these components.. In the future, we plan to investigate the fully interactive exploration of time-varying datasets, allowing both runtime variation of spatial viewpoints and time tick, which we expect to be very useful to real world production scientific users. In addition, many existing techniques such as TSP-tree, hardware acceleration, multiresolution rendering and compression-accelerated rendering should all be incorporated into our system to improve its performance. In this section, we present and analyze experimental results obtained using a time-varying volume rendering system with TOCaccelerated visibility culling. A software ray casting algorithm was implemented to perform volume rendering and the image size was set to be 512 × 512. Our testing platform is a PC cluster with 32 2.4GHz Pentium IV Xeon processors, with an interconnection by Dolphin Networks. Our primary testing dataset came from a Richtmyer-Mevhkov Instability (RMI) simulation at Lawrence Livermore National Laboratory. At each of the 274 time steps, the simulation produced 7.5GB of data with a spatial resolution of 2048 × 2048 × 1920. Due to the storage limitation, we chose 64 time steps from the data set, starting with the 4th time step and picking one out of every four time steps, with each spatial dimension downsampled to half of its original resolution. The total size of this selection is 60GB. Each of the experiments assumes a fixed viewing direction until all time steps have been visualized. To further demonstrate the benefit of OPOF, as compared to our previous POF approach, we also ran experiments using a static volume dataset, the 512 × 512 × 1728 Visible Woman. During pre-processing, each dataset was partitioned into 32 × 32 × 32 data blocks, which were then evenly distributed to 32 processors along a space filling curve. We tested visibility acceleration for the RMI dataset from a set of sample views. Under a sample view from which the temporal evolvement of the data is clearly shown, without leveraging visibility culling, 64 time steps of the RMI dataset required approximately 7.6 minutes to complete on 32 processors, including the time for both parallel rendering and parallel I/O. Utilizing our TOCaccelerated visibility culling framework, we reduced the total time to less than 1.5 minutes (about 1.4 seconds per time step on average), or an 80% reduction in the rendering and I/O costs for this test view. Figure 7 shows the average culling effects, as measured by the average number of blocks rendered under 18 sample views, spaced 20 degrees apart, for each time step. On average, 50% of nonempty blocks were culled away for most time steps. A few sample images of the RMI dataset are shown in Figure 8 .. Temporal occlusion coherence typically exists to some degree in all time-varying datasets, which is captured by a threshold in our algorithm. To demonstrate the existence of such coherence, Figure 9 shows the percentage of blocks that exhibit temporal occlusion coherence at each time step, for three difference thresholds. It can be seen that the tighter the difference threshold, the less coherence is observed.. The occlusion coherence determined during block fusion must be efficiently accessible at runtime, to achieve the full potential of visibility acceleration. Using a TOC tree to heuristically analyze and fuse spatial coherence among neighboring blocks, visibility is checked only for those pixels whose occlusion accumulation is affected by the advent of a new time step. The runtime cost of visibility estimation is proportional to the number of pixels covered by the screen footprints of incoherent blocks. The overhead of TOC tree usage was negligible, at about 0.25 seconds for construction and 1.8MB total storage, for the RMI dataset with a difference threshold of 0.001. In Figure 10 , we compare the number of affected pixels at each time step, with or without using the temporal occlusion coherence. Without using the temporal occlusion coherence, all pixels need be checked to update the blocks' visibility. When the temporal occlusion coherence is used, the total time for visibility determination throughout the entire time sequence was reduced from from 2.4 seconds to 1.1 seconds, using 32 processors.. As an additional benefit of temporal occlusion coherence, we need only compute one OPOF for each representative block. Although the use of OPOFs is highly efficient at runtime, OPOF precomputation still incurs some overhead, especially for very large time-varying datasets. The actual pre-computation overhead from using OPOF depends on the user-chosen difference thresholds. Table 1 compares OPOF computation time (in seconds), storage cost (in Mbytes) and the resulting number of visible blocks under a given view, for five difference thresholds. With a difference threshold of 0, essentially no temporal coherence is considered and the best culling effects can be achieved, but at high pre-computation cost. However, even with a very small non-zero difference threshold, both computation time and storage space are used more efficiently. Note that although an increased difference threshold can save time and storage overheads with OPOF, it can ultimately have an adverse effect on culling performance if the threshold is chosen to be too large. This is because each fusion operation ensures conservativeness. The occluding capability of the new block after a fusion operation is always lower or equal to that of any original block. The higher the threshold, the more the fusion operations that are executed. The aggregate effect of a large number of fusion operations is a culling that is too conservative, which means more blocks will be considered as visible. For instance, in our experiment, using thresholds as high as 0.001 offers great culling results, but using 0.01 causes a dramatic increase in the number of blocks determined as visible, most of which are clearly false positives. Thus, we believe 0.001 is a good choice for this particular dataset. Using OPOF, our run-time visibility culling algorithm can achieve better culling effects than our previous POF-assisted visibility culling algorithm. In Figure 11 , we compare the culling effect of an early-ray termination type of culling algorithm with methods using POF and OPOF, from 18 sample views spaced 20 degrees apart around the test dataset. (Note that early-ray termination represents the theoretical limit of occlusion culling performance, although it cannot be used efficiently in practice with large-scale parallelism, due to overwhelming runtime communication for very large datasets.) All three algorithms are coarse-grained and cull away volume blocks directly, not individual voxels. For this comparison, both the Visible Woman data set and a single time step of the RMI dataset were used. By adjusting the opacity transfer function, the regions of interest, such as the skin in the Visible Woman data, were made highly opaque, but in the RMI dataset very low opacity values were used. It can be seen that, for both datasets, using OPOF can achieve culling results very close to the benchmark algorithm, while POF sometimes produces somewhat more false positives, especially for highly transparent datasets like RMI.. With our space-filling curve mechanism of data distribution, and an efficient TOC framework, our parallel time-varying volume rendering algorithm achieved balanced workload and good scalability. Figure 12 shows the number of total blocks rendered by each of 32 processors throughout 64 total time steps. During the rendering of each time step, our parallel renderer consistently achieved above 80% CPU utilization on a 32-processor PC cluster. Much research has been explored in algorithms for visibility culling and time-varying data visualization, but primarily in separate contexts. Integrating visibility culling to accelerate time-varying data visualization has not been widely studied. Below we briefly review some related research work.

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


Transfer tagging from image to video Nowadays massive amount of web video datum has been emerging on the Internet. To achieve an effective and efficient video retrieval, it is critical to automatically assign semantic keywords to the videos via content analysis. However, most of the existing video tagging methods suffer from the problem of lacking sufficient tagged training videos due to high labor cost of manual tagging. Inspired by the observation that there are much more well-labeled data in other yet relevant types of media (e.g. images), in this paper we study how to build a "cross-media tunnel" to transfer external tag knowledge from image to video. Meanwhile, the intrinsic data structures of both image and video spaces are well explored for inferring tags. We propose a Cross-Media Tag Transfer (CMTT) paradigm which is able to: 1) transfer tag knowledge between image and video by minimizing their distribution difference; 2) infer tags by revealing the underlying manifold structures embedded within both image and video spaces. We also learn an explicit mapping function to handle unseen videos. Experimental results have been reported and analyzed to illustrate the superiority of our proposal. In the most recent years, driven by the advances in the Internet and the digital camera techniques, a tremendous number of user-generated video clips have been emerging on the Web for publishing and sharing. To facilitate an effective and efficient video retrieval, it is significant for the modern video search engines to leverage the automatic video tagging techniques to index the video data with certain meaningful keywords, i.e. tags. Due to the expensive labor cost of manual tagging, it is not practical to provide sufficient labeled training data for most of the existing video tagging methods to build perfect tagging models, thereby leading to an unsatisfactory tagging performance. Currently, there are two advanced research directions aiming to address this problem: 1) The first one is the transfer learning (TL) model, which is motivated by the observation that tag information in relevant sources is helpful for generating better classifiers for the target data. However, most of the existing works only consider the same media type, i.e. video, for both the source and the target, where the tag insufficiency issue may still exist. It is natural to consider different media types as well, e.g. image. Noticing the recent success of cross media retrieval [9] , we derive a strong motivation of developing a cross-media model for transferring tag knowledge from tagged image data to video data. Figure 1 illustrates Flickr images and YouTube videos both related to the topic "Football"; 2) The second way is to leverage both unlabeled data and labeled data in the same media. This is usually known as semi-supervised learning (SSL) [10] , which has shown great benefits to the applications in the multimedia research.. In this paper we aim to collaboratively take advantages of both transfer learning and semi-supervised learning to boost video tagging performance. The main contributions of our work are summarized as below:. • A cross-media video tagging scheme CMTT is proposed to transfer tag knowledge from image to video for improving video tagging performance.. • We explore the intrinsic manifold structures embedded in both image and video spaces by employing semisupervised learning.. • Extensive experiments have been conducted to illustrate the effectiveness of our method.. The rest of this paper is organized as follows. In section 2, we describe the details of the CMTT model. Section 3 reports experimental results, followed by the conclusion in Section 4. In this paper, we derive a novel cross-media video tagging scheme, namely Cross-Media Tag Transfer (CMTT). which is able to transfer tag knowledge from image to video. It extends graph-based semi-supervised learning model for inferring tags by exploring the underlying image and video data structures. To handle the unseen videos, an explicit mapping function is learnt with multiple kernel ridge regression. Extensive experiments on two image and video cross-media combinations show the effectiveness of our proposal. In this section we evaluate the effectiveness of our proposed model. Two web image datasets are used as the auxiliary sources while one video dataset is the target.. The proposed model is compared with two state-of-the-art transfer learning algorithms A-MKL [4] and A-SVM [8] , and two baseline algorithms including SVM, and graph-based semi-supervised learning (SSL). The Mean Average Precision (MAP) is chosen as the evaluation metric.

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


A Lower Bound for the Job Insertion Problem This note deals with the job insertion problem in job-shop scheduling: Given a feasible schedule of n jobs and a new job which is not scheduled, the problem is to ÿnd a feasible insertion of the new job into the schedule which minimises the makespan. Since the problem is NP-hard, a relaxation method is proposed to compute a strong lower bound. Conditions under which the relaxation provides us with the makespan of the optimal insertion are derived. After the analysis of the polytope of feasible insertions, a polynomial time procedure is proposed to solve the relaxed problem. Our results are based on the theory of perfect graphs and elements of polyhedral theory. ? In this paper we have studied the job insertion problem. We have given various characterisations of feasible insertions and developed a lower bounding method. To our best knowledge, no lower bound was known to this problem. Our computational results show that the bound is strong and can be computed e ciently in polynomial time.. There are various directions to continue this work, some of them have partially been explored in [14] . We have developed a branch-and-bound algorithm to solve the job insertion problem to optimality in which the lower bound in each search tree node is computed by the method proposed in this paper. The computational results are quite promising and we plan to report on an extensive computational study in a forthcoming paper.. The job insertion problem can be deÿned for more general scheduling problems as well, e.g., when the operations of the jobs must be processed on sets of machines instead of single machines. In this case the characterisation of the set of feasible insertions of a sequence of operations into a schedule is a major open problem. Note that a lot of work has been done on inserting a single operation that requires a set of machines, see e.g., [10, 6, 4, 14] . We believe that these results can be extended to a theory of the simultaneous insertion of a sequence of operations where each operation in the sequence may require several machines.

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


Optimising upload bandwidth for quality of VCR operations in P2P VoD systems Abstract: Many P2P VoD systems have been proposed, but only few can support VCR operations. Most of the works require very well provisioned source servers to guarantee the quality. The challenge is to do the same without requiring well provisioned source servers. In this paper, we take the heterogeneity of bandwidth into consideration, and also consider the practical case in which the capacity of the streaming buffer is limited. With these conditions, we formulate the problem as an upload bandwidth optimisation problem. We first prove that this problem is NP-hard and then propose an optimal dynamic programming solution. Peer-to-Peer (P2P) Video-on-Demand (VoD) is increasingly popular with internet users. Many P2P VoD systems have been presented (Do et al., 2004; Guo et al., 2003; Liao et al., 2006; Ying and Basu, 2005; Sheu et al., 1997; Hua et al., 1998; Zheng et al., 2006) , but only few support VCR operations, such as fast-forward and jumping to arbitrary playback points (Cheng et al., 2007) . The challenge lies in providing smooth playback on changes of the playback point during VCR operations. This entails fast locating the peers that can supply the needed video blocks for the VCR operations and downloading the blocks in time.. To satisfy such a quality requirement, most previous systems rely on well-provisioned source servers. The challenge is to do the same without well-provisioned source servers. One promising approach to solving this problem is to replicate the video blocks in the overlay. BulletMedia (Vratonjic et al., 2007) uses this approach to reduce the load of the source server and the latency of resuming playback when peers perform a seek operation. However, it only considers number of replicas for a block in the overlay, but not the total available upload bandwidth for a block. Considering only number of replicas is insufficient when the upload bandwidths of the peers are heterogeneous. We address this issue in this paper.. Consider the simple example, in which there are five peers in the overlay and the video file can be divided into three blocks (b 1 , b 2 , b 3 ). Figure 1 shows the example with the upload bandwidth, cache content and cache capacity of each peer. For each peer, since the number of blocks is larger than the cache capacity, we must decide which block should be discarded. Figure 2 shows one solution when the peers use the 3-replica method to cache the video blocks. Although each block has three replicas in the overlay, the available upload bandwidth for each block is unbalance, e.g., the available bandwidth for b 1 is 7 + 3 + 5 = 15, b 2 is 17 and b 3 is 28. If the playback rate must be larger than 20 to guarantee the quality of playing the video, only block b 3 can provide enough upload bandwidth. Our goal of the paper is to ensure that the upload bandwidth for each block can satisfy the given bandwidth requirements. If the expected bandwidth for each block is 20 in the above-mentioned example, then one possible solution can be shown in Figure 3 . In this paper, we assume that the peers have heterogeneous upload bandwidths and limited cache capacity for storing video blocks. With these constraints, the problem is to decide which block should be cached to optimise the upload bandwidth for each block. The problem is referred to as the upload bandwidth optimisation problem in this paper. The rest of this paper is organised as follows. In Section 2, we formulate the problem and prove that the problem is NP-hard. Section 3 proposes an optimal solution using Dynamic Programming (DP). Section 4 introduces a Distributed Heuristic (DH) to solve the problem. Performance study based on simulation is presented in Section 5. Finally, we conclude this paper in Section 6. In this paper, we formulate the bandwidth utilisation problem on the P2P VoD systems that provide VCR operations, and show this problem is NP-hard. We propose an optimal DP solution to solve this problem and a DH to work in practice. Our simulation results show that our formulation actually conforms to our optimisation goal, which is to guarantee the quality of VCR operations without requiring a well-provisioned server. Our distributed heuristic can achieve low overhead by setting a small group size and long refresh time and has better performance than previous work using the replica method.

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


Convergence of program transformers in the metric space of trees Abstract. In recent years increasing consensus has emerged that program transformers, e.g., partial evaluation and unfold/fold transformations, should terminate; a compiler should stop even if it performs fancy optimizations! A number of techniques to ensure termination of program transformers have been invented, but their correctness proofs are sometimes long and involved. We present a framework for proving termination of program transformers, cast in the metric space of trees. We rst introduce the notion of an abstract program transformer; a number of well-known program transformers can be viewed as instances of this notion. We then formalize what it means that an abstract program transformer terminates and give a general su cient condition for an abstract program transformer to terminate. We also consider some speci c techniques for satisfying the condition. As applications we show that termination of some well-known program transformers either follows directly from the speci c techniques or is easy to establish using the general condition. Our framework facilitates simple termination proofs for program transformers. Also, since our framework is independent of the language being transformed, a single correctness proof can be given in our framework for program transformers using essentially the same technique in the context of di erent languages. Moreover, it is easy to extend termination proofs for program transformers to accommodate changes to these transformers. Finally, the framework may prove useful for designing new termination techniques for program transformers. Numerous program transformation techniques have been studied in the areas of functional and logic languages, e.g., partial evaluation and unfold/fold transformations. Pettorossi and Proietti 30] show that many of these techniques can be viewed as consisting of three conceptual phases which may be interleaved: symbolic computation, search for regularities, and program extraction.. Given a program, the rst phase constructs a possibly in nite tree in which each node is labeled with an expression; children are added to the tree by unfolding steps. The second phase employs generalization steps to ensure that one constructs a nite tree. The third phase constructs from this nite tree a new program.. The most di cult problem for most program transformers is to formulate the second phase in such a way that the transformer both performs interesting optimizations and always terminates. Solutions to this problem now exist for most transformers.. The proofs that these transformers indeed terminate|including some proofs by the author|are sometimes long, involved, and read by very few people. One reason for this is that such a proof needs to formalize what it means that the transformer terminates, and signi cant parts of the proof involve abstract properties about the formalization.. In this paper we present a framework for proving termination of program transformers. We rst introduce the notion of an abstract program transformer, which is a map from trees to trees expressing one step of transformation. A number of well-known program transformers can be viewed as instances of this notion. Indeed, using the notion of an abstract program transformer and associated general operations on trees, it is easy to specify and compare various transformers, as we shall see.. We then formalize what it means that that an abstract program transformer terminates and give a su cient condition for an abstract program transformer to terminate. A number of well-known transformers satisfy the condition. In fact, termination proofs for some of these transformers implicitly contain the correctness proof of the condition. Developing the condition once and for all factors out this common part; a termination proof within our framework for a program transformer only needs to prove properties that are speci c to the transformer. This yields shorter, less error-prone, and more transparent proofs, and means that proofs can easily be extended to accommodate changes in the transformer. Also, our framework isolates exactly those parts of a program transformer relevant for ensuring termination, and this makes our framework useful for designing new termination techniques for existing program transformers.. The insight that various transformers are very similar has led to the exchange of many ideas between researchers working on di erent transformers, especially techniques to ensure termination. Variations of one technique, used to ensure termination of positive supercompilation 35] , have been adopted in partial deduction 23], conjunctive partial deduction 16], Turchin's supercompiler 41] , and partial evaluation of functional-logic programs 1]. While the technique is fairly easily transported between di erent settings, a separate correctness proof has been given in each setting.. It would be better if one could give a single proof of correctness for this technique in a setting which abstracts away irrelevant details of the transformers. Therefore, we consider speci c techniques, based on well-known transformers, for satisfying the condition in our framework. The description of these techniques is speci c enough to imply termination of well-known transformers, and general enough to establish termination of di erent program transformers using essentially the same technique in the context of di erent languages. As applications we demonstrate that this is true for positive supercompilation and partial deduction (in the latter case by a brief sketch).. The set of trees forms a metric space, and our framework can be elegantly presented using such notions as convergence and continuity in this metric space. We also use a few well-known results about the metric space of trees, e.g., completeness. However, we do not mean to suggest that the merits of our approach stem from the supposed depth of any of these results; rather, the metric space of trees o ers concepts and terminology useful for analyzing termination of abstract program transformers.. Section 2 introduces program transformers as maps from trees to trees. This is then formalized in the notion of an abstract program transformer in Section 3. Section 4 presents positive supercompilation as an abstract program transformer. Section 5 presents the metric space of trees, and Section 6 uses this to present our su cient condition for termination, as well as the speci c techniques to satisfy the condition. Section 7 shows that positive supercompilation terminates. It also sketches Martens and Gallagher's 26] generic algorithm for partial deduction as an abstract program transformer and sketches a proofs that it terminates.. We stress that it is not the intention of this paper to advocate any particular technique that ensures termination of program transformers; rather, we are concerned with a general method to prove that such techniques are correct.. This work is part of a larger e ort to understand the relation between deforestation, supercompilation, partial deduction, and other program transformers better 17, 18, 20, 36, 37] and to develop a unifying theory for such transformers.

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


On oblivious PTAS's for nash equilibrium If a class of games is known to have a Nash equilibrium with probability values that are either zero or Ω(1) -and thus with support of bounded size -then obviously this equilibrium can be found exhaustively in polynomial time. Somewhat surprisingly, we show that there is a PTAS for the class of games whose equilibria are guaranteed to have) -values, and therefore large -Ω(n) -supports. We also point out that there is a PTAS for games with sparse payoff matrices, a family for which the exact problem is known to be PPAD-complete [6] . Both algorithms are of a special kind that we call oblivious: The algorithm just samples a fixed distribution on pairs of mixed strategies, and the game is only used to determine whether the sampled strategies comprise an -Nash equilibrium; the answer is "yes" with inverse polynomial probability (in the second case, the algorithm is actually deterministic). These results bring about the question: Is there an oblivious PTAS for finding a Nash equilibrium in general games? We answer this question in the negative; our lower bound comes close to the quasi-polynomial upper bound of [18] .Another recent PTAS for anonymous games [13, 14, 7] is also oblivious in a weaker sense appropriate for this class of games (it samples from a fixed distribution on unordered collections of mixed strategies), but its running time is exponential in 1 . We prove that any oblivious PTAS for anonymous games with two strategies and three player types must have , rendering the algorithm in [7] (which works with any bounded number of player types) essentially optimal within oblivious algorithms. In contrast, we devise a poly(n) · (1/ ) O(log 2 (1/ )) non-oblivious PTAS for anonymous games with two strategies and any bounded number of player types. The key idea of our algorithm is to search not over unordered * This work was done while the author was a postdoctoral researcher at Microsoft Research, New England.† Supported by NSF grant CCF -0635319, a gift from Yahoo! Research, and a MICRO grant.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, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. sets of mixed strategies, but over a carefully crafted set of collections of the first O(log 1 ) moments of the distribution of the number of players playing strategy 1 at equilibrium. The algorithm works because of a probabilistic result of more general interest that we prove: the total variation distance between two sums of independent indicator random variables decreases exponentially with the number of moments of the two sums that are equal, independent of the number of indicators. Is there a polynomial time approximation scheme (PTAS) for computing approximate Nash equilibria? This has emerged, in the wake of the intractability results for Nash equilibria [9, 5] , as the most central question in equilibrium computation. Over the past three years there has been relatively slow progress towards smaller 's [10, 11, 4, 21] -so slow that it is hard to believe that a PTAS is around the corner. On the other hand, [13, 14] provide a PTAS for the important special case of anonymous games with a bounded number of strategies (those for which the utilities of the players, although different, depend on the number of players playing each strategy, not on the identities of the players that do). This PTAS proceeds by discretizing the probabilities in the mixed strategies of the players to multiples of 1 k , for appropriate integer k, and works even in the generalization in which the players are divided into a bounded number of types, and utilities depend on how many players of each type choose each strategy.. In this paper we report significant progress on this important algorithmic problem; we present several new algorithms, but also the first nontrivial lower bounds. We start by pointing out two new interesting classes of bimatrix games 1 that have PTAS's:. • It was shown in [6] that computing a Nash equilibrium for the special case of sparse games, that is, games whose payoff matrices have a bounded number of nonzero entries in each row and column [6] , is PPADcomplete. We point out that there is a trivial PTAS -in particular, the pair of uniform mixed strategies works. This is interesting in that this is the first PPAD-complete case of a problem that is so approximable.. • We also give a randomized PTAS for small probability games, that is, games that are guaranteed to have Nash equilibria with small O( 1 n ) nonzero probability values, and thus with linear support (Theorem 3).. It is quite surprising that games with small probability values (our second special case above) are easy, since games with large (bounded from below by a constant) probability values are also easy. What probability values are difficult then? Our next result, a lower bound, seems to suggest inverse logarithmic probability values are hard (compare with the quasi-PTAS of [18] , whose equilibria have roughly logarithmic support).. To explain our negative result, we first note that both PTAS's outlined above (as well as those for anonymous games discussed later) are oblivious. This means that they have access to a fixed set of pairs of mixed strategies, in the generic case by sampling, and they look at the game only to determine whether a sampled pair of strategies constitutes an approximate Nash equilibrium. Is there an oblivious PTAS for the general Nash equilibrium? The answer here is a definite "no" -in fact, we proved our negative result after we had been working for some time on developing such an algorithm. . . We show that any oblivious algorithm must sample at least Ω " n (.8−34 ) log 2 n " pairs in expectation (Theorem 4). For comparison, [18] 's algorithm takes time n O(log n/ 2 ) .. Another important class of games for which a PTAS was recently discovered is that of anonymous games with two strategies [13, 7] . These are multi-player games, in which the utility of each player depends on the strategy (0 or 1) played, and the number of other players playing strategy 1 (not their identities). In fact, the PTAS works even in the more sophisticated case in which the players are partitioned into types, and the utilities depend on the number of players of each type playing strategy 1. The PTAS in [13] , and the relatively more efficient one in [7] , both have running times that are exponential in 1 . They are also oblivious in a sense appropriate for anonymous games, in that they work by sampling an unordered set of n mixed strategies, where n is the number of players, and they only look at the game in order to determine if there is an assignment of these strategies to the players that results in an approximate equilibrium. We prove that any oblivious approximation algorithm, for anonymous games with two strategies and three player types, must sample an exponential-in 1 -sized collection of unordered sets of mixed strategies -and so our PTAS's are near-optimal.. Finally, we circumvent this negative result to develop a non-oblivious PTAS which finds an -approximate Nash equilibrium in anonymous games with two strategies and any players, but in what follows we only discuss the two-player, or bimatrix, case.. bounded number of player types in time poly(n)`1. This algorithm is based (in addition to many other insights and techniques for anonymous games) on a new result in applied probability which is, we believe, interesting in its own right: Suppose that you have two sums of n independent Bernoulli random variables, which have the same first moment, the same second moment, and so on up to moment d. Then the distributions of the two sums have variational distance that vanishes exponentially fast with d, regardless of n. To turn this theorem into an algorithm, we discretize the mixed strategies of the players using techniques from [7] and, in the range of parameters where the algorithm of [7] breaks down, we iterate over all possible values of the first log(1/ ) moments of the players' aggregate behavior; we then try to identify, via an involved dynamic programming scheme, mixed strategies, implementing the given moments, which correspond to approximate Nash equilibria of the game. Our approximation guarantee for sums of independent indicators is rather strong, especially when the number of indicators is small, a regime where Berry-Esséen type bounds provide weaker guarantees and result in slower algorithms [13, 7] . It is quite intriguing that a quasi-polynomial time bound, such as the one we provide in this paper, shows up again in the analysis of algorithms for approximate Nash equilibria (cf. [18] ).

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B 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 B O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 B O O O O O O O O O O O O B O O O O O O B I O O O O O O O O O O O O O O O O O O O O O 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 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 B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 B O O O O O O B I O O O O O O O O O O O O O O O O O O O O O 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 efficient algorithm for solving fifth-order boundary value problems In this paper, we apply the homotopy perturbation method for solving the fifth-order boundary value problems. The analytical results of the equations have been obtained in terms of convergent series with easily computable components. Several examples are given to illustrate the efficiency and implementation of the homotopy perturbation method. Comparisons are made to confirm the reliability of the method. Recently much attention has been given to develop some analytical methods for solving integral equations including the perturbation methods. It is well known that perturbation methods provide the most versatile tools available in nonlinear analysis of engineering problems [13, 14] . The major drawback in the traditional perturbation technique is the over dependence on the existence of a small parameter. This condition is too strict and greatly affects the applications of the perturbation techniques because most of the nonlinear problems (especially those having strong nonlinearity) do not even contain the socalled small parameter; moreover the determination of the small parameter is a complicated process and requires special techniques. These facts have motivated researchers to suggest alternative techniques such as the homotopy analysis method [11, 12] , Adomian decomposition methods [17] and the variational iteration method [4] [5] [6] [7] [8] .. In order to overcome these drawbacks, combining the standard homotopy method and perturbation, we obtain a modified method, which is called the homotopy perturbation method. In this paper, we develop a homotopy perturbation method for solving a system of integral equations. It is shown that this method provides the solution in a rapid convergent series. We show that this method is easy to implement and it is more efficient than the Adomian method. We remark that to apply the Adomian method, one has to evaluate the derivative of the socalled Adomian polynomial, which is itself a complicated problem. On the other hand, homotopy perturbation is very simple to apply, which is the main characteristic of this method. Several examples are given to illustrate the performance of the method.. In this paper, we consider the general fifth-order boundary value problems of the type:. with boundary conditions. where f is continuous function on [a, b] and the parameters A i and B i , i = 1, 2 are real constants. Such type of boundary value problems arise in the mathematical modelling of the viscelastic flows and other branches of mathematical, physical and engineering sciences, see [1] [2] [3] 9, 10] and the references therein. Several numerical methods including spectral Glarkin and collocation [2, 9] , decomposition [17] and sixth order B-spline [1] have been developed for solving fifth-order boundary value problems of the type (1) . The use of spline function in the context of fifth-order boundary value problems was studied by Fyfe [3] , who used the quintic polynomial spline functions to develop consistency relations connecting the values of solution with fifth-order derivatives at the respective nodes. Polynomial sextic spline functions were used [16] to develop the smooth approximations to the solution of fifth-order boundary value problems. Wazwaz [17] used the Adomian technique to find the analytical solutions of the problem (1) . Recently, Noor and Mohyud-Din [15] used the variational iteration method to find the series solution of such type of the problems.. The main motivation of this paper is to apply the homotopy perturbation method to solve the fifth-order boundary value problems of the type (1). This is accomplished by rewriting the fifth-order boundary value problems (1) in a equivalent system of integral equations. This alternative equivalent formulation plays a key role in solving the fifthorder boundary value problem. We show that this method provides the solution in a rapid convergent series. In fact, it can be shown that the homotopy perturbation method solves effectively, easily and accurately a large class of linear and nonlinear ordinary, partial, deterministic, stochastic differential equations with approximate solutions which converge rapidly to accurate solutions. Comparison with other methods shows that the homotopy perturbation can be viewed as an effective alternative technique for solving a wide class of problems arising in various branches of pure and applied sciences. In this paper, we have shown that the homotopy perturbation method can be used successfully for finding the solution of linear and nonlinear boundary value problems of fifth order by reformulating as a system of integral equations. It may be concluded that this technique is very powerful and efficient in finding the analytical solutions for a large class of integral and differential equations. This technique provides more realistic series solutions as compared with the Adomian decomposition and variational iteration techniques.

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


A mobility framework to improve heterogeneous wireless network services We propose and investigate the Internet Protocol version 6 (IPv6) enabled mobility framework to improve the user mobility experience in heterogenous wireless networks. The framework considers the traditional IP network infrastructure, IPv6 based mobility support, multihoming, traffic flow transparent handovers and flat/dynamic mobility policy enforcement to guarantee the Quality of Service (QoS) and Quality of Experience (QoE) with ubiquitous connectivity. Using Network Mobility (NEMO) we can provide a flexible network integration mechanism across WiFi, WiMax and UMTS systems vertically. The flexible approach overcomes the limitation of different networks access denial when nodes move using two operations: Policy enforced handover management and Dynamic handover implementation. The paper describes the design rationale behind the solution, introduces an experimental testbed and simulation models, validates mobility related services performance, and discusses our research findings.Keywords: QOS; quality of service; QOE; quality of experience; mobility; handover; heterogenous; IPv6; policy enforcement; flexible network.Reference to this paper should be made as follows: Shen, C., Du, W., Atkinson, R., Irvine, J. and Pesch, D. (2011) The fourth generation heterogeneous mobile communication network refers to a complex hierarchical system including different radio access technologies such as Long Term Evolution (LTE), Orthogonal Frequency Division Multiplexing (OFDM) access, Code Division Multiple Access (CDMA) based 3G networks, Time Division Multiple Access (TDMA) networks based 2G networks, IEEE 802.16 WiMAX, IEEE 802.11 WiFi compatible systems and other IEEE 802 networks.. The current heterogeneous systems are complex and there is high communication demand during mobility. Therefore node and network mobility becomes one of the most important features with significant impact on how communication systems evolve. A new level of mobility support is required by both service providers and end users to facilitate the emerging ambient and ubiquitous communications. Provided with such support, the end-user would rarely experience a forced service termination when roaming where certain types of networks may not available. The end-users can be also transparent from any mobility service changes while the service providers handle the background mobility signalling transfer.. Among various solutions, Mobile IP is seen as a practical approach to provide the mobility support. The implementation is independent of radio access network types and transparent among applications. It is reasonable to incorporate the node and network mobility support in the context of next generation IP based transporting architecture (the mobilenode/mobile network referring to a node or node with an IP subnet, respectively, capable of changing their IP topological locations according to Lach et al. (2003) . Figure 1 illustrates the heterogenous wireless networking environment in the current situation where major wireless radio access/network types are presented. In this scenario the networks are not integrated; they remain autonomous independently-managed entities. An end-user may have to frequently make network selection decisions or experience service termination when moving without the presence of seamless heterogeneous network (inter-network and intra-network) mobility management protocols. To introduce robustness, flexibility and adaptivity to this heterogenous wireless networking environment, we propose to use Internet Protocol version 6 (IPv6) for gluing the networks and hence providing the generic inter-network and intra-network communication platform. Motivated by service quality improvement, the mobility framework consider three important enablers which are:. • IPv6 Multihoming scenarios in the 802.11 WiFi compatible access and IPv6 transparent traffic vertical handovers. • Dynamic network selection protocols using policy based flow distribution. • Socio-Economic drivers that the current heterogenous wireless networks need to consider:. The 'tussle' (Clark et al., 2005 ) management for end user and infrastructure providers.. The emergence of new converging mobile services challenging their existing business model. A double network and service heterogeneous environment has emerged from the inter-operability of different technological standards and alignment between different players, challenging the traditional assumptions of network providers (Blumenthal and Clark, 2001 ). These new services and their following generations require high bandwidth capacity and lead to conflicting interests between the different stakeholders involved, in particular but not limited to infrastructure and service providers (Clark et al., 2005) . The heterogeneous environment may lead to inefficiencies e.g., the deployment of parallel architectures or even system failure. In particular, key challenges are the service qualify problems, justification for further infrastructure investments and regulatory challenges. We treat the first two enablers as the technical problems and the 'tussle' management enabler an application issue. Application drives can be translated into Multiple Attribute Decision Making (MADM) or Dynamic Decision Making (DDM) parameters, then input to the flexible mobility framework to make a better mobility decision and optimise the system performance. The paper starts with a short description on the state of the art IP based wireless networks mobility and handover management review in Section 2. Section 3 details our proposed mobility framework using adaptive policy enforcement, cross platform handover scenarios with system characteristics, the multi-homed networking experiment testbed and computer simulation environment. We verified the mobility related Quality of Experience (QoE) in Section 4 and finally detail our research conclusion and outlook in Section 5.

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


The Choice of Vantage Objects for Image Retrieval Suppose that we have a matrix of dissimilarities between n images of a database. For a new image, we would like to select the most similar image of our database. Because it may be too expensive to compute the dissimilarities for the new object to all images of our database, we want to ÿnd pn "vantage objects" (Pattern Recognition 35 (2002) 69) from our database in order to select a matching image according to the least Euclidean distance between the vector of dissimilarities between the new image and the vantage objects and the corresponding vector for the images of the database. In this paper, we treat the choice of suitable vantage objects. We suggest a loss measure to assess the quality of a set of vantage objects: For every image, we select a matching image from the remaining images of the database by use of the vantage set, and we average the resulting dissimilarities. We compare two classes of choice strategies: The ÿrst one is based on a stepwise forward selection of vantage objects to optimize the loss measure. The second is to choose objects as representative as possible for the whole range of the database. In this paper, we deal with the following problem: Suppose that we have a database of n images (objects). The information about the images is given in form of n(n − 1)=2 dissimilarities between them. For a new image, we would like to select the most similar image from our database. This requires the computation of n dissimilarities. Suppose that there is some computational e ort to calculate a single dissimilarity, and that it is feasible to calculate a small number of dissimilarities, say 20 or 40, but not all n. Vleugels and Veltkamp [1] suggest the following strategy: Choose a suitable number p of objects from the database as "vantage objects". Calculate the dissimilarities between the new object and the vantage objects. Interpret every object in the database, as well as the new object, as a p-dimensional vector in the Euclidean space, namely as the vector of dissimilarities to the vantage objects. Select the object in the database, whose vector of dissimilarities to the vantage objects has the smallest Euclidean distance to the vector of the new image. This means that for the classiÿcation of the new image only p dissimilarity calculations are needed.. The question arises how to choose the vantage objects. Vleugels and Veltkamp [1] suggest some heuristic strategies. We present here a data driven approach to measure the quality of a set of vantage objects by means of a loss function and we suggest and compare some strategies to ÿnd high quality sets. If p would be so small that evaluation of the loss of all ( n p ) vantage sets of size p would be possible, the loss function could be optimized directly.. There are two well-known problems in multivariate statistics that have some similarities to the vantage object problem: As in the variable selection problem in classiÿcation [2, Chapter 6] , a subset of a "feature set" (namely the set of objects, variables, respectively) is to be constructed in order to perform a computationally easier classiÿcation on the base of this subset. Secondly, there are some methods to look for "representative objects" of a dataset in the context of cluster analysis, see [3, Chapter 2] .. The loss function and some of the suggested strategies are inspired by an old data-analytic idea, namely the principle of cross-validation (A general account is given by Stone [4] ). In general, this means that a rule for statistical prediction or classiÿcation can be assessed by dividing a dataset in two parts. One is used for the development of the rule, the other for the assessment of its quality. "Leave-one-out", a more reÿned form, is used frequently for variable selection in classiÿcation, beginning with Lachenbruch and Mickey [5] . The principle here is as follows: If we have a training sample of n objects, each of them belonging to a known of k possible classes, and we want to assess the quality of a classiÿcation rule based on p of q features to classify a new observation into one of the classes, we divide the dataset n times (for each object) in parts of 1 and n − 1 objects, respectively. Then we treat the class of the single object as unknown and classify it on the base of the other n − 1 objects. The misclassiÿcation rate gives a good loss measure for the discriminant rule, and features can be chosen by minimizing this experimental error rate.. The vantage object problem needs another kind of loss measure, which is deÿned in Section 2. As long as no simple probability models for object distances are available, there are no standard statistical competitors for data driven methods such as cross-validation.. For large p, the loss measure cannot be optimized directly. In Section 3, we discuss a strategy to ÿnd vantage objects which optimize the loss measure locally on the base of a stepwise forward algorithm as used often for variable selection in discriminant analysis and linear regression, see e.g. [6, Chapter 15] ; [2, Chapter 6] , and on the base of cross-validation. They can be compared with alternative strategies, which try to ÿnd objects which, in some manner, represent the whole database. The strategy of Vleugels and Veltkamp [1] belongs to this class as well as the search for objects representing clusters in the data. Such techniques are discussed in Section 4. Some extensions of our approach are introduced in Section 5.. In Section 6, we apply the strategies to four databases where three di erent dissimilarity measures between the images are used.. The direct optimization of the loss measure on the database leads to a certain bias, if it is interpreted as an estimator for the loss of the selection of similar images for new objects. This bias is assessed in Section 7. Some discussion is given in Section 8. Suppose that we have a matrix of dissimilarities between n images of a database. For a new image, we would like to select the most similar image of our database. Because it may be too expensive to compute the dissimilarities for the new object to all images of our database, we want to ÿnd pn "vantage objects" [1] from our database in order to select a matching image according to the least Euclidean distance between the vector of dissimilarities between the new image and the vantage objects and the corresponding vector for the images of the database. In this paper, we treat the choice of suitable vantage objects. We suggest a loss measure to assess the quality of a set of vantage objects: For every image, we select a matching image from the remaining images of the database by use of the vantage set, and we average the resulting dissimilarities. This principle is referred to as "leave-one-out cross-validation" is statistics. We suggest and compare some choice strategies: The ÿrst class of choice strategies is based on a stepwise forward selection of vantage objects to optimize the loss measure. This can be done by using the whole dataset to estimate the loss measure, or, to save computing time, to draw random subsets on which the measure is evaluated. The second class is the choice of objects as representative as possible for the whole range of the database. From this class, a cluster analysis method and the stepwise forward maximization of the minimum dissimilarity inside the vantage set are compared. Some modiÿcations are suggested to adapt the loss function and the selection criterion for vantage objects better to a given database. We apply the strategies to four example databases. We study not only the performance of the strategies, but also the selection bias by splitting the databases in two parts and testing the quality vantage objects selected from one part for the other. In the examples, stepwise forward optimization of the loss measure on the whole database performs best. The strategy to maximize the minimum dissimilarity inside the vantage set shows a good relation between performance and computing time. The approach developed here is neither restricted to a particular dissimilarity nor to a particular loss or selection function. It is always possible to compare vantage object sets stemming from various choice strategies by a loss measure based on the "leave-one-out" principle. Our suggestions for loss function are not meant to be optimal in a general sense. We think that the loss measure should be tailored to the concrete database and the objective of the image retrieval. However, our suggestions may ÿt many situations.. If n is not too large, it is promising to optimize the loss locally by stepwise forward selection. In larger databases, other approaches like maximin distance or strategies based on cross-validation with random test sets are to be compared. In our examples, the maximin distance method led to good results unless the number of vantage objects was too small. It is fast and easily implemented, so that it looks like a good choice. The strategy of taking representative objects of clusters as vantage objects led to disappointing results in almost all examples. However, we generally recommend the comparison of vantage objects from more than one strategy.. The results of our examples do not show considerably different tendencies between the two image dissimilarity measures that obey the triangle inequality and the one of Latecki and Lak amper [7] , but more experiments would be needed to examine in depth the dependence of our approach on the properties of the dissimilarity measure.. From a statistical point of view, the overall loss function (3) is only an estimate of the "real" selection loss of a selection rule for new unknown images. In our setup there is no statistical model, and therefore the theoretical properties of this estimate cannot be analyzed. But there are some results for "leave-one-out" cross-validation in more accessible problems. In general it can be said that cross-validation leads to almost unbiased estimations of a prediction error in discriminant analysis and regression and is clearly superior to naive approaches. The assumptions for cross-validation to work are listed in [13] , where the author refers as well to theoretical results about some situations where the principle may lead to suboptimal decisions. If vantage objects are selected by the optimization of a CV-based measure, the measure has a selection bias, which can be assessed by performing a double cross-validation. We suggest to do this only for the illustration of the bias, and to use the objects chosen by use of the whole database ÿnally.. For some data-analytical problems, cross-validation can be replaced or complemented by more reÿned data driven techniques such as "bootstrap" [14] refer to some papers about comparing simulations between cross-validation and bootstrap), but it is not clear how to adapt them to our setup, and the authors continue to acknowledge cross-validation as a widely applicable and useful approach.. An alternative approach to the selection of a similar image could be to build a decision tree on the database based on vantage objects that decide between the branches of the tree. It would be of interest to compare the resulting selection method with ours by means of the leave-one-out loss measure.

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