Request generation for a peer-based PVR Capacity planning, as well as protocol design and storage system design for video distribution systems are dependent on an understanding of the anticipated workload. Previous studies have focused on aggregate statistics of video popularity over time, and only recently has work been done which analyzes user behaviour variability over time. We are interested in a video storage/distribution system that uses peer resources to help content providers distribute video content to nodes in a network over long periods of time. Such a system is intended to operate on local principles of utility associated with each peer. More than ever, a workload model based on long-term user behaviour is required. In particular, it is unclear how request patterns driven by local utility can be shaped to match expected large-scale aggregate request characteristics such as a Zipf-distribution for overall popularity. In this paper, we describe early work in developing a workload generator for a Peer-based PVR (Personal Video Recorder) system to demonstrate some of these challenges. Research efforts over the past two decades to understand access patterns to large-scale media servers, media content distribution networks, and video-on-demand systems generally reflect several common fundamental insights about the 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. distribution of requests for media objects. Most notably, it is widely understood that media object popularity usually has a Zipf-like distribution [2, 3, 12] . While specific details about the shapes of these distributions are, of course, going to be application and content specific, we can draw a number of important general inferences. First, for the most popular items, the high frequency of requests results in a situation where on average there is always more than one concurrent request for the media object. Second, the vast majority of media objects exist in the "tail" of the distribution. These objects are, for the most part, equally popular (or more aptly, unpopular). At any given time the number of current requests for these objects is either one or zero.. In light of these general insights, a designer of any media distribution system should be most concerned with only the most popular items. This is because system design can be optimized to exploit the concurrency of several outstanding requests in order to increase system performance be that measured by response time, buffering delay, server load, or some other objective function. Over the years a number of different techniques have been developed for doing so including batching, patching [6] , prefix caching, and pyramid broadcasting [7, 13] just to name a few. For the most part, past work on media distribution systems has not been concerned with developing models for the popularity of individual media objects and/or the media requests of individual users. It has been sufficient to understand that some set of media objects will receive the bulk of the requests without necessarily needing to understand exactly which media objects these are or how the set changes over time.. Decentralized peer-to-peer systems, however, are fundamentally different than media distribution systems for which there is a global objective function for performance. In particular, each participant optimizes local resources to maximize the utility of participating relative to an objective function that may be unique to each individual client. For any given peer, the utility of a particular media object may be unrelated to the popularity of that object globally. In fact, we can expect the utility of a particular media object to be primarily determined by local conditions at the peer such as whether or not the media object has already been "consumed" (i.e., viewed) at least once already, the length of time that the object has been held by the peer, and the presence (or absence) of related media objects such as prior or subsequent episodes of a series.. An important difference between the utility of a media object with respect to an individual in a peer-to-peer system and the utility of a media object with respect to the aggregate of all media requests across the system is that we can not expect a Zipf-like distribution of utility among the media objects held by an individual peer. In other words, we do not expect an individual to value one media object twice as much as another media object simply because one media object is twice as popular with all the other peers in the system. The very fact that a peer has chosen to obtain a media object at all is an allocation of resources (both bandwidth and storage) that reflects a utility that is essentially infinitely greater than for objects not held. While some of these media objects will in fact be globally popular, most will not. From the perspective of the system as a whole (i.e., the perspective of a centralized or globally-designed system), only the most popular items will matter. From the perspective of an individual peer within a decentralized system, however, the majority of local resources are generally spent on media objects that have relatively high local utility but relatively low global popularity. In other words, if we look at the problem from the bottom-up, the tail matters. If the system is deployed in a decentralized fashion, centralized policies are unenforceable, and untenable.. We have observed some video workloads where the majority of the requests and (presumably) the majority of the bytes transferred are from objects in the tail of the distribution. Thus, the long term ability for servers to store these unpopular objects requires immense storage capacity or distribution over many nodes. Careful allocation of this storage must be performed by some entity in the system. Thus, in a peer-based system that is active over long periods of time, it is not sufficient to determine the aggregate popularity of media objects at specific time scales. Instead, it is equally important to understand which users are interested in which videos at which times, since any caching system that is decentralized needs to operate on the current utility of the objects in the local cache, and some notion of the current state of the cache of peers. A more sophisticated model of workload requests is necessary. In particular, we must be able to generate media requests at the level of individual users which collectively demonstrates aggregate behaviour consistent with measurements taken in previous studies of centralized systems while at the same time is consistent with our intuition about how people actually value and use media objects locally.. Our goals in this paper are to:. • Describe a generalized model of a peer-to-peer media distribution system in which independently managed digital video recorders (i.e., TiVo-like devices) are able to communicate and share media objects.. • Report on early efforts to construct a model for media requests driven by peer-specific utilities for individual media objects that collectively generate an aggregate Zipf-like distribution.. The main contribution of this paper is to make the case that it is important to understand how large-scale Zipf-like aggregate media request distributions arise from individual peer-assigned object utilities. Our early experience suggests that doing so is challenging and not trivial. We believe that the early models we have developed in this paper provide an important starting point for addressing these challenges.. The rest of this paper is organized as follows. Section 2 contains a description of a peer-to-peer system driven by local utility that serves as a driving application. In Section 3, we provide a survey of related work in the area of caching infrastructures for video as well as video request modeling and analysis. The system model implemented in our simulations is covered in Section 4, with particular emphasis on a workload model and workload generator. The design and results of simulation experiments are given in Section 5. These results lead us to some analysis and validation of the results against data captured from a deployed data set from a single subnet (edge) access log of a centralized system. Finally, we present conclusions and suggestions for future work in Section 6. In this paper, we make a case for developing a user-specific utility-based request model for media objects. We believe having such a model will be important for developing and evaluation decentralized peer-to-peer media distribution systems. In particular, we anticipate that any such model will need to incorporate realistic user behavior such as utility decay over time and due to consumption, the introduction of new media objects over time, and aggregate request distributions that are Zipf-like and thus consistent with prior studies of centralized systems.. We implemented a request generator that utilized global popularities of videos, associating each request with a user. The results showed that we can artificially generate a pattern of requests that has a Zipf distribution by selection of appropriate decay parameters and arbitrarily assigning initial popularity values to each video. However, the resulting distribution is sensitive to the specific decay values used and the scale of the simulation. While request patterns for specific media objects compared favorably with patterns seen in empirical measurements, the empirical data exhibit a number of patterns that our model is unable to generate.. Future work is required to develop more accurate models of request arrivals, distribution of requests over users and request patterns from individual users for individual videos.. In particular, we intend to make the workload model more realistic by considering viewing operations taking place in between publishing periods and extending the specifications of media object types (length, genre). A dynamic population of users would also be more realistic. Choong et al. describe a content distribution system that inserts a proxy layer which distributes rewards to clients for storing/forwarding media content within the scope of the local last-mile network [1] . Peer-to-peer streaming with selfish competition is introduced by Shrivastava and Banerjee [11] .. They describe natural incentives in such a model to improve the quality of media streams by collaborating.. Huang et al. evaluate the PPLive VoD System in developing principles for the architecture of P2P VoD systems [8] . They consider similar issues to our model, such as video segmentation and replication strategy. They measure user behavior and user satisfaction on a small window of time (1 week) and carefully examine many short-term properties of user behaviour and object popularity.. The distribution of video requests has been studied for many years and has not been resolved to any degree of certainty in the existing literature. One of the first investigations was by Griwodz et al. [4] , which predated deployments of on-line video distribution systems. The authors developed a model for popularity decay that was exponential and superimposed a random effect dependent on the size of the user population. They found that long-term trends differed from day-to-day measurements.. Jin and Bestavros developed the GISMO workload generator [9] to provide more realistic workload traces than had previously been used in media server analysis and design. Their work is more comprehensive in that the model generates demand requests that consider the inter-arrival time of sessions, size distributions and user-interactivity behaviour, in addition to the bit-rate requirement variability over time. Our model is significantly simpler in scope, and more specifically deals with a restricted mechanism for making new content available in the system. Guo et al. [5] show that several internet media access patterns exhibit the characteristics of a stretched exponential distribution, and are not zipf-like, when only the media objects themselves are considered. Many data requests are for metadata or content associated with an ad server. In addition, much content is filtered by caches along the way, so that accurate measurements from either the client side or the server side are difficult. When these requests are removed, the video request patterns in 16 different data sets were analyzed and showed a good fit to the stretched exponential distribution.. Gill et al. found that YouTube video requests on a university campus do exhibit a Zipf distribution [3] , and otherwise confirm similar results of other previous work. There are diurnal effects, and day of week effects visible in the data. News and sports have high, but short-term popularity, while music, comedy, and other entertainment videos are most popular in the long-term. Garcia et al. analyze the user interactions in a News-On-Demand website [2] . The authors divide interactions into sessions, requests and interactions. They analyze the interdependence of the various variables used as parameters for request generators.. Any peer-based system will exhibit characteristics of social networking. Ostrowski and Sarhan evaluated traces of social networking video [10] . They found Zipf distributions for the top videos over different time intervals, as well as diurnal and weekly viewing patterns.. An artifact of currently-deployed systems is that the capabilities of the technology significantly affect the behaviour of the users. In particular, slow network connections may result in an incomplete viewing or may cause the user to time-shift to a time when the network is less busy. At the extreme, users may choose to download, rather than stream the content. Users adapt to the limitations of the system, and as such, the requests captured in a trace may not reflect their desired watching behaviour. These traces do, however, provide a potential target request pattern distributions that our system should be able to generate. Since the evidence from measurement studies is sufficiently contradictory, our model should be capable of generating requests that ultimately match a wide array of popularity distributions. The simulator generates requests by a static user population from a video population that changes over time. Videos are added, but not removed from the population each publishing period. A run of the simulator consists of publishing the specified number of videos on the specified number of channels, and issuing requests for available videos at each publishing time. The number of time units that the simulation runs is thus the ratio of videos to channels. We selected the Zipf distribution as the target distribution, because it matches most of the previous research. Future work will examine request generators that can produce requests according to other distributions.. The objective of the experiments is to generate a representative sample of video requests from the population of users and videos and determine whether the original Zipf distribution of popularity used to derive peer-specific utilities is recreated by the aggregate of peer requests across time. The video requests should match a target distribution in terms of aggregate popularity at multiple time scales. As well, it is desirable that the component behaviour of an individual user and the requests for individual videos conform to our intuition regarding the proposed interaction model for a user and the system, both as instantaneous measurements and over long periods of time. In particular, it is not clear whether or not such aggregate behavior properly emerges given utility decay and the introduction of new video objects.. Preliminary experiments varied the number of users, the number of videos, and the number of channels in an independent fashion with a constant decay factor. The next round of experiments kept the size parameters constant and modified the decay parameter. This was in an effort to determine how to control the time-varying nature of object popularity so that the overall distribution remained the same over all time periods.. We performed a number of experiments that varied the number of users, the number of videos and the number of channels. As expected, the major results of these experiments were a change in the density of traffic, but not in the shape of the popularity of the objects relative to each other. After generating many experimental runs, we graphed the popularity of a video object against its rank within the set of all objects. When graphed on a log-log scale, data that exhibits a Zipf distribution results in a straight line with a negative slope, indicating the Zipf parameter of the distribution. In the following graphs, the lines represent the average of 10 replications of a request generating session with the same configuration. The deviation is very small (less than 0.03%), so error bars are not shown. Figure 1 shows the results for one sample experiment. Except for the very tail of the graph, the video requests form a Zipf distribution, since decay was chosen appropriately. Figure 2 shows two runs that have 5000 users, and 128 videos with 0.29 for the decay value. The simulation lasts for more time units in one run than the other, because of the different numbers of channels. When 64 channels are utilized, the simulation lasts 2 time units, whereas when we publish on 16 channels, the simulation lasts 8 time units. We can see that the higher popularity videos (the top 6) in the 16 channel case do not show a Zipf distribution, because they decay too quickly; most of the requests for an object come in the initial publishing time interval. We also see a drop off in the tail of the distribution for the 64 channel case, possibly because second interval low popularity videos have only one time interval in which to be selected. The effect of an improper decay value can be seen another way. In Figure 3 , what can be seen is that the tail of the distribution drops off if the decay factor is incorrect. If the decay factor is too small (i.e. decay occurs too slowly), then the older videos continue to be very popular and newly released videos that are popular within the set of videos that were released at the same time never become globally popular. This is inconsistent with our experience with realworld systems. If decay is too large, then videos only get watched in the first few time periods after release and in the long term, there will be a large number of videos with approximately the same popularity, namely those that were tagged as the most popular at publishing/release time. Future work is required to determine a more realistic pattern of decay for accurate aggregate behaviour for videos in the tail of the distribution. To determine if our simulation data is qualitatively similar to observed behaviour in a deployed system, we have obtained an anonymized data set of YouTube video requests from the University of Calgary (obtained by permission) [3] . The identity of the requester was made anonymous, but the identity of the video object was retained. Gill et al. performed an exhaustive analysis of the characteristics of this data set from the request level to the byte level, and over different time-scales. This is a somewhat similar in context to our envisioned deployment scenario, but we are only interested in the requests for video objects over time by different users. Nevertheless, real data from a deployed system provides us with a large comparison data set.. We expected that object popularity would decline as a function of time since release. Some of the videos showed this property, but some did not. The most popular video is requested at the beginning of the trace period, reaches its popularity peak at day 30, and then shows a decline, but still has a steady number of requests until the end of the trace period. We show the third most popular video ( Figure 5 ) as an example of the decay pattern observed in 5 of the top 10 videos from the YouTube data set.. This compares well to our results from the simulator. It is also appropriate to note that videos released late in the capture time period were able to become globally as popular over the time period as those released earlier. The third most popular video was not viewed at all until Day 60. The request distribution over time for other objects shows very different decay patterns, indicating that several models will be required in a full-featured request generator.. An analysis of the tail of the distribution showed that over three months of data collection 99% of the objects were requested fewer than 8 times. As well, 90% of the requests were made to these objects in the long-tail. The relative size of each object was not analyzed, but if objects are close to the same size, then a significant majority of the bytes transferred are also contained in these requests.. The user-based approach is necessary to provide the basis for a user having utility in keeping certain content in their long-term cache. First of all, it is clear that we can model individual requests for videos in a manner consis- tent with some aspects of at least one case of real-world data. Users have a time-varying behaviour that influences their own personal storage requirements. Secondly, the time varying nature of the requests for an individual video also shows similarity to some video objects in the case study. This is encouraging, but is also an area for further work in which alternate video types are incorporated that show a different decay pattern. These different decay patterns may influence other factors in the system, such as desired level of replication of a particular object. Finally, we note that the aggregate request behaviour for all objects still follows a zipf distribution if we start each distribution period with a set of videos explicitly chosen from a zipf distribution and decay values are carefully chosen. Further work will verify if these properties can be maintained with other distributions and if critical decay values can be analytically derived.

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


A reconfigurable cache architecture for energy efficiency On-chip caches often consume a significant fraction of the total processor energy budget. Allowing adaptation to the running workload can significantly lower their energy consumption. In this paper, we present a novel Set and way Management cache Architecture for efficient Run-Time reconfiguration (Smart cache), a cache architecture that allows reconfiguration in both its size and associativity. Results show the energy-delay of the Smart cache is on average 18% better than state-of-the-art reconfiguration architectures. The power dissipation of modern microprocessors is a primary design constraint across all processing domains, from embedded devices to high performance chips. Cache memories contain a large number of transistors and consume a large amount of energy. Customization of cache parameters may be static or dynamic; in a static approach the designer sets the cache parameters before synthesis, whereas in a dynamic scheme the cache parameters can be modified within a certain range to adapt to the running application. This paper proposes a configurable cache architecture that allows reconfiguration of both the size and associativity, providing maximum flexibility to the application. We compare our approach, called the Smart cache, against stateof-the-art cache reconfiguration techniques and show that our scheme's energy-delay product is on average 14% better than these prior works. This paper has presented a novel configurable cache architecture that can be reconfigured in both size and associativity to match the requirements of an application. We have demonstrated that our Smart cache architecture has an energy-delay product that is on average 18% better than state-of-the-art approaches. Future work will harness this architecture for dynamic cache adaptation to fit the cache to the requirements of each application phase as it runs. This section evaluates our Smart cache approach against prior cache architectures on static configurations of the level-2 cache. We implemented these approaches in the HotLeakage simulator [6] , updating the underlying power models to use a more recent version of Cacti (v5.3) [2] that has been modified to support our new circuitry for 70nm process technology. We also altered the simulator to include the power and performance overheads of reconfiguring each cache. We modelled an Alpha out-of-order superscalar whose cache configurations are similar to an Intel Core 2 processor. Figure 3 shows the energy-delay values achieved when running each benchmark on the best static configuration for that application for each cache architecture. The best static configuration is the one that has the lowest energy-delay and a maximum 2% performance loss, from all the possible configurations. Figure 3 shows on average level-2 cache energy-delay achieved by our approach is 0.24, which is 14% better than set-only cache [1] , set-and-way cache [4] and 25% better than the way-concatenation combined with the wayshutdown cache [5] . This clearly demonstrates the benefits of using our Smart cache architecture for run-time cache reconfiguration.

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


Ramsey games with giants The classical result in the theory of random graphs, proved by Erdős and Rényi in 1960, concerns the threshold for the appearance of the giant component in the random graph process. We consider a variant of this problem, with a Ramsey flavor. Now, each random edge that arrives in the sequence of rounds must be colored with one of r colors. The goal can be either to create a giant component in every color class, or alternatively, to avoid it in every color. One can analyze the offline or online setting for this problem. In this paper, we consider all these variants and provide nontrivial upper and lower bounds; in certain cases (like online avoidance) the obtained bounds are asymptotically tight. Let G n,m be the Erdős-Rényi random graph with n labeled vertices and m randomly chosen edges. A celebrated result of Erdős and Rényi, probably the single most important result in the theory of random graphs, discovered a threshold for the appearance of the giant component in this random model. Erdős and Rényi proved that if m ≤ (1 − ǫ) n 2 for a constant ǫ > 0, then whp 1 the random graph G n,m has all of its connected components of order at most logarithmic in n; on the other hand, if m ≥ (1 + ǫ). As a warm-up, consider the offline threshold for creating a giant in every color. Recall that if m < (1 − ǫ) n 2 for any fixed ǫ > 0, then whp G n,m itself has all components of size O(log n). On the other hand, one can show that for m > (1 + ǫ) n 2 , whp it is possible to color the edges of G n,m with any fixed number of colors r ≥ 2, so that every color class contains a component of order Ω(n). Indeed, Ajtai, Komlós, and Szemerédi proved in [2] that whp G n,(1+ǫ) n 2 contains a path of length c ǫ n.. (Here and later in the paper, we will write c ǫ to specify a positive constant determined only by ǫ.) By splitting this path into r paths of length c ǫ n/r, the result follows.. The question of avoiding giants in all colors offline is not so simple. It turns out that the threshold for avoiding giants in r colors is precisely the same as that of r-orientability, which says that it is possible to direct all of the edges of the graph so that the resulting digraph has maximum in-degree at most r. Cain, Sanders and Wormald [8] , and Fernholz and Ramachandran [9] recently discovered that this threshold coincides with the number of edges needed to make the (r + 1)-core have average degree above 2r. More precisely, they showed that for any integer r ≥ 2, there is an explicit threshold ψ r such that the following holds. For any ǫ > 0, if m > (ψ r + ǫ)n, then whp G n,m contains a subgraph with average degree at least 2r + c ǫ , where c ǫ > 0. On the other hand, if m < (ψ r − ǫ)n, then G n,m is r-orientable whp. The asymptotic dependence of ψ r on r is ψ r = r − 1 2 2 e + o (1) r , as calculated in [8] . We now state our first main theorem in terms of this threshold. Remark. This was also recently and independently discovered by Spöhel, Steger, and Thomas [25] .. We also consider online versions of these problems, in which the m edges come sequentially, and each must be colored as soon as it appears. Precisely, we consider the process to be a sequence of m rounds. In each round, a random edge arrives, independently and uniformly distributed over all pairs of vertices. If it repeats an existing edge, then we do not force ourselves to recolor it. This is not an important issue, because we will never consider more than O(n) rounds, but it is more convenient to use this product probability space with full independence between the rounds.. Here, we have several results. First we state them for avoiding giants in all colors. The offline upper bound of course supplies an upper bound for the online case as well. Indeed, a standard coupling argument (Fact 2.3 in the next section) translates the offline upper bound to the case where the rounds have independent edges (possibly with repetitions). So, after (ψ r + ǫ)n rounds, whp every possible coloring of them contains a giant component, where the dependence of ψ r on r is ψ r = r − (1) r .. On the other hand, by taking the natural online adaptation of the offline avoidance strategy, which was based on edge orientation, we found a randomized online algorithm which matches the first-order asymptotic of ψ r = (1 − o(1))r. Theorem 1.2. For any ǫ > 0, the following holds for all sufficiently large r. There is an online randomized algorithm which can last for (1 − ǫ)rn rounds, while keeping all connected components in each of r color classes smaller than o(n) whp.. For large r, this is asymptotically a factor of 2 better than the trivial bound of (1 − ǫ) rn 2 rounds, obtained by coloring each edge independently at random. On the other hand, for small r, beating the trivial bound corresponds to using ǫ = 0.4999 above (say), and this requires r > 50. For the extreme case of small r, we have the following result using an entirely different strategy, which improves upon the trivial bound for all r by a factor of approximately 1.06. Theorem 1.3. There is an online algorithm which can 2-color edges for 1.06n rounds, while keeping all connected components in both color classes of size at most O(log n) whp.. Remark. Although the theorem is stated only for r = 2, it immediately gives a strategy for all even r, by splitting the colors into r 2 pairs. At each round, one of the color pairs is randomly chosen, and the above algorithm is used to decide which of the two colors in the pair to use. Then, this will avoid giants in all colors for 1.06n · r 2 rounds whp. For odd r, one can run the above modification for 1.06n · r−1 2 rounds using only the first r − 1 colors, and then an additional (1 − ǫ) n 2 rounds using only the r-th color. This beats the trivial bound of rn 2 by a factor which approaches 1.06 as r grows.. When the objective is to create giants in every color class, the trivial bounds are as follows. Certainly, if fewer than (1 − ǫ) n 2 edges are observed, then whp there will be no giant in the uncolored graph, so one cannot hope to create r monochromatic giants any faster. Note that this trivial lower bound turned out to be the truth in the offline setting, even though it does not grow with r. We will show that in the online case, there is a lower bound which does. In this paper we have introduced several rather natural algorithmic variants of the classical problem of the appearance of the giant component in a random graph/process. As expected, the offline cases of these problems appear to be much more accessible, and indeed we managed to solve both the avoidance and the embracing versions asymptotically for any fixed r. The online case seems to be more challenging; there we showed that in all cases one can do better than the trivial algorithms that randomly color each incoming edge, but for creating giants, rather sizable gaps remain.. It would certainly be nice to settle the case of two colors for creating and avoiding giants online in both color classes, but that could be difficult. A more approachable problem might be to close the asymptotic gap between the lower bound of Ω(log r) · n and the upper bound of O( √ r) · n for the question of creating giants in r colors. In particular, can one show a lower bound of the form r a n for some positive constant a? Another, perhaps more technical, issue that we would like to see settled is the nature of an algorithm for avoiding giants online. Our online avoidance algorithm is randomized. Is there a deterministic strategy that matches its performance in the online setting?

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


Chinese Document Layout Analysis Using An Adaptive Regrouping Strategy In document layout analysis, the defining conditions for textlines and text regions involve certain numerical parameters (e.g. inter-character spacing and inter-textline spacing) whose values can only be estimated when textlines and text regions have already been formed. This seemingly chicken-and-egg problem can be solved through an adaptive regrouping strategy, which consists of three operations. First, we group basic ingredients into preliminary textlines and text regions according to crude parametric values. Second, we refine our estimate of the parametric values based on the groups thus formed. Third, we form new groups by splitting and merging existing groups based on the newly estimated values. This paper applies the above strategy to Chinese documents whose complexity derives from the coexistence of horizontal and vertical textlines. Successful results are obtained using this approach. The accuracy rates for identifying text regions and textlines are above 98% in a test database consisting of over one thousand document samples and various layout structures. The complexity of Chinese documents lies in the high degree of freedom allowed in the layout structure. Western documents have only a horizontal reading order, while Chinese documents have both horizontal and vertical orders. An article in a newspaper, for example, may contain horizontal headlines and vertical content textlines. This poses a challenge for both top-down and bottom-up analysis. When using a top-down approach, an area segmented according to certain spatial clues may contain textlines of different orders, leaving the seg-2 mentation work incomplete. On the other hand, by using a bottom-up approach both the scope and the reading order for each textline and text region must be determined at the same time as the textlines are constructed.. Because more than one reading order can appear on the same page and they cannot initially be distinguished, we purposely construct both horizontal and vertical textlines from the same regions. We then determine the reading order based on the fact that the inner spacing within incorrect textlines reflects the spacing between correct textlines, and is, in general, wider than the inner spacing within correct textlines. Thus, instead of viewing the solution to this problem as merely top-down or bottom-up, we can view the layout analysis as a multiple constraint problem (Chang [1] [2] ). Our adaptive regrouping strategy is a practical way to solve this type of problem.. The remainder of this paper is organized as follows. Section 2 provides the background of the problem and the outline of our approach. Section 3 describes the initial construction of textlines. Section 4 describes the method for determining the reading order of textlines. Section 5 contains the method for resolving remaining conflicts between textlines. In Section 6, we present the method for constructing text regions. Section 7 details our test results. Finally, in Section 8, we present our conclusions. Our approach to textual segmentation is a series of approximation schemes that gradually builds up knowledge about high-order objects. It refines constructed objects based on the acquired knowledge. The advantage of this process is that knowledge acquisition and object construction go hand in hand. In the beginning, when little is known about any textual objects, we construct textlines in all possible directions. From textlines that are compatible in 16 size, but conflicting in reading order, we are able to infer a normal space size for the possible text regions. Based on this knowledge, we are able to eliminate textlines that manifest incorrect reading directions. Normal space size information also provides a clue to separate textlines from groups to which they have been wrongly attributed. When conflicts between textlines no longer exist, we are able to combine all textlines that are compatible in size and direction. The purpose of doing this is not only to obtain text regions, but also to detect two-column structures in the resultant text regions and to connect broken pieces into full textlines. The effectiveness of this approach is confirmed by the high accuracy rates obtained in a test of over one thousand samples and seven major layout types. A parallel search is conducted first and we obtain the text region R 2 . Table 4 . The sizes of images whose processing times are shown in Table 3 .

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


FO(FD): Extending classical logic with rule-based fixpoint definitions We introduce fixpoint definitions, a rule-based reformulation of fixpoint constructs. The logic FO(FD), an extension of classical logic with fixpoint definitions, is defined. We illustrate the relation between FO(FD) and FO(ID), which is developed as an integration of two knowledge representation paradigms. The satisfiability problem for FO(FD) is investigated by first reducing FO(FD) to difference logic and then using solvers for difference logic. These reductions are evaluated in the computation of models for FO(FD) theories representing fairness conditions and we provide potential applications of FO(FD). Two mainstream knowledge representation paradigms of the moment are on the one hand, classical logic-based approaches such as description logics (Baader et al. 2003) , and on the other hand, rule-based approaches from logic programming and extensions such as Answer Set Programming and Abductive Logic Programming (Baral 2003; Kakas et al. 1992) . The latter disciplines are rooted in the discipline of Non-Monotonic Reasoning (McCarthy 1986) . FO(ID) (Denecker and Ternovska 2008) integrates both paradigms in a tight, conceptually clean manner. The key to integrate "rules" into classical logic (FO) is the observation that natural language, or more precisely, the informal language of mathematicians, has an informal rule-based construct: the construct of inductive/recursive definitions (IDs). FO(ID) extends FO not only with an inductive definition construct but also with an expressive and precise non-monotonic reasoning principle. It is an extension of FO with inductive definitions and an integration of FO and LP. It integrates monotonic and non-monotonic logics. The inductive definition construct of FO(ID) formally generalizes Datalog (Abiteboul et al. 1995) . FO(ID) is also strongly related to fixpoint logics. Monotone definitions in FO(ID) are a different rule-based syntactic sugar of the fixpoint formulas of Least Fixpoint Logic (LFP) (Park 1969 ). Last but not least, FO(ID), being a clear, well-founded integration of rules into classical logic, might play a unifying role in the current attempts of extending FO-based description logics with rules (Vennekens and Denecker 2009) . It thus appears that FO(ID) occupies quite a central position in the spectrum of computational and knowledge representation logics.. The work in this paper is inspired by work on FO(ID) to integrate LP-style rules into fixpoint constructs. The resulting constructs are called fixpoint definitions (FDs). Fixpoint definitions use the rule-based format which will enable us to more easily link fixpoint constructs with the rule-based knowledge representation paradigm and the FO(ID) formalism. We define the logic FO(FD), which is an extension of classical logic with fixpoint definitions. In FO(FD), almost all kinds of inductions can be expressed in a natural way. The study of FO(FD) contributes to the understanding of rule-based systems and thus, to the study of the relation between non-monotonic inductive definitions and fixpoint definitions, to the study of the correspondence between well-founded and fixpoint semantics and to the integration of classical logic-based and rule-based approaches for knowledge representation.. We investigate the connection between FO(FD) and FO(ID) by presenting equivalence preserving transformations from FO(ID) to FO(FD). It turns out that all kinds of inductive definitions in FO(ID) can be expressed in FO(FD). Meanwhile, due to the allowance of the nesting of least and greatest fixpoint constructs in FO(FD), the nesting of induction and coinduction can be represented in FO(FD). Thus, some concepts, e.g., infinite structures and the nesting of recursion and corecursion (Barwise and Moss 1996), which can not be defined in FO(ID) in a well-founded way, can be handled naturally in FO(FD). We show that in general, FO(FD) is strictly more expressive than FO(ID).. On the computational level, the satisfiability problem for FO(FD), deciding the satisfiability of FO(FD) theories, is a major research topic. One research direction is towards developing solvers for extensions of propositional logic, e.g., SMT. Difference logic (Nieuwenhuis and Oliveras 2005) can be seen as an instance of an SMT framework where propositional logic is extended with simple linear constraints. Efficient implementation techniques for difference logic are emerging in the SMT domain (Nieuwenhuis and Oliveras 2005; Cotton and Maler 2006) , which makes it a good choice as base technology. In this paper, we develop translations from FO(FD) to difference logic, based on similar reductions of logic programs presented in (Janhunen et al. 2009; Niemelä 2008) . The translations reduce the satisfiability check of FO(FD) theories to finding satisfying interpretations of difference logic theories. This provides a novel approach to model expansion for FO(FD). We also present experimental results.. The paper is organized as follows. In Section 2, we introduce fixpoint definitions and the logic FO(FD). FO(ID) and the relationship between FO(FD) and FO(ID) are presented in Section 3. We investigate the satisfiability problem for FO(FD) by providing the reductions from FO(FD) to difference logic in Section 4. The reductions are evaluated experimentally in Section 5. In Section 6, we present some potential applications of FO(FD) and a conclusion follows in Section 7.

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


A Hybrid Model For Sharing Information Between Fuzzy, Uncertain And Default Reasoning Models In Multi-Agent Systems This paper develops a hybrid model which provides a unified framework for the following four kinds of reasoning: 1) Zadeh's fuzzy approximate reasoning; 2) truth-qualification uncertain reasoning with respect to fuzzy propositions; 3) fuzzy default reasoning (proposed, in this paper, as an extension of Reiter's default reasoning); and 4) truth-qualification uncertain default reasoning associated with fuzzy statements (developed in this paper to enrich fuzzy default reasoning with uncertain information). Our hybrid model has the following characteristics: 1) basic uncertainty is estimated in terms of words or phrases in natural language and basic propositions are fuzzy; 2) uncertainty, linguistically expressed, can be handled in default reasoning; and 3) the four kinds of reasoning models mentioned above and their combination models will be the special cases of our hybrid model. Moreover, our model allows the reasoning to be performed in the case in which the information is fuzzy, uncertain and partial. More importantly, the problems of sharing the information among heterogeneous fuzzy, uncertain and default reasoning models can be solved efficiently by using our model. Given this, our framework can be used as a basis for information sharing and exchange in knowledge-based multi-agent systems for practical applications such as automated group negotiations. Actually, to build such a foundation is the motivation of this paper.

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


On the Failure of Fixed-Point Theorems for Chain-complete Lattices in the Effective Topos In the effective topos there exists a chain-complete distributive lattice with a monotone and progressive endomap which does not have a fixed point. Consequently, the Bourbaki-Witt theorem and Tarski's fixed-point theorem for chain-complete lattices do not have constructive (topos-valid) proofs. In this note I show that in the effective topos Eff [2] there is a chain-complete distributive lattice with a monotone and progressive endomap which does not have a fixed point. An immediate consequence of this is that several fixed-point theorems for chain-complete posets have no constructive (topos-valid) proofs, cf. Section 5.. The outline of the argument is as follows. In Eff every chain is a discrete object in the sense of [3] , hence it has at most countably many global points. Consequently, the poset ∇ω 1 is chain-complete in the effective topos, even though it is only countably complete in Set. The successor function on ∇ω 1 is monotone and progressive, and obviously does not have a fixed point.. We work out the details of the above argument carefully in order not to confuse external and internal notions of chain-completeness, discreteness, and countability. For the uninitiated, we have included a brief overview of the effective topos in Appendix A.

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


Using CHI-scores to reward honest feedback from repeated interactions Online communities increasingly rely on reputation information to foster cooperation and deter cheating. As rational agents can often benefit from misreporting their observations, explicit incentives must be created to reward honest feedback. Reputation side-payments (e.g., agents get paid for submitting feedback) can be designed to make truth-telling optimal. In this paper, we present a new sidepayment scheme adapted for settings where agents repeatedly submit feedback. We rate the feedback set of an agent, rather than individual reports. The CHI-Score of the feedback set is computed based on a Chi-square independence test that assesses the correlation between the agent's feedback and the feedback submitted by the rest of the community. The mechanism has intuitive appeal and generates significantly lower costs than existing incentive-compatible reporting mechanisms. Reputation mechanisms emerge as a promising solution for building trust in online communities lacking objective monitoring and enforcing authorities. The experience of previous interactions (i.e., reputation information) is an indicator of future performance; when feedback is shared within the community, agents can accurately identify malicious partners and thus protect themselves against cheating. The Feedback Forum of eBay is a notorious example of how reputation mechanisms make business possible in a decentralized environment where two agents have few a priori reasons to trust each other.. In a service-oriented market, reputation mechanisms can do more than just identify and isolate malicious providers. Perfect service is impossible, or prohibitively expensive to provide. Occasional failures happen against the best intention of service providers; excluding such providers from the market would be unfair and inefficient. Instead, reputation information can be used to approximate the real quality of service (QoS) delivered by a provider, and consequently, to dynamically scale the price paid for service [10] . Such a flexible pricing scheme allows service providers with different characteristics to reach the best compromise between delivered quality (hence revenue) and costs. Jurca and Faltings [11] show how reputation information can become part of the Service Level Agreements (SLAs) and efficiently substitute external monitoring of Quality of Service (QoS). They prove that such reputation-based SLAs make it rational for service providers to keep their promises, leading to an efficient and trustworthy market.. In this paper, we address a similar scenario. Autonomous agents (clients) contract services from the different providers available in the market. The contract (i.e., the SLA) specifies the price of service, the promised QoS and a monetary penalty, paid back to the agent, when the delivered QoS is lower than promised (see [2, 11] for a framework and detailed description of such interactions). Assuming that all clients in a given group are treated equally within a certain period of time, their aggregated feedback estimates the real QoS delivered to them as a group. Reputation information (i.e., aggregated feedback) can therefore replace external monitoring of QoS, and serve to compute the penalty due by the providers.. This leaves the problem of obtaining true feedback from self-interested agents. Reporting the truth is not optimal: by submitting false negative reports, the agents can decrease the reputation of the provider and thus decrease the total price (i.e., the price specified by the SLA minus the reputation-based penalty) paid for service. Misreporting incentives can be counterbalanced by explicit rewards for honest feedback. The reputation mechanism can use sidepayments to pay for the agents' reports. As no objective information is available in the market, the reputation sidepayments are computed by correlating one agent's report with reports submitted by peers. When carefully designed, these payments make it optimal for every agent to reveal the true feedback. Moreover, they can be scaled such that reporting costs or other external benefits obtained from lying (e.g., a price decrease) are accounted for. [12, 11] .. However, existing side-payment schemes assume that every agent interacts only once with a service provider (in a given time period), and can therefore submit only one feedback. When a client interacts several times with the same provider, coordinated lying in multiple feedback reports can still be profitable.. Take, for example, a web service providing stock quotes. The client requests the price of a specified stock at a given time: e.g., "Request the price of an IdealCompany share at 11:00AM on Oct 18, 2005". The provider promises an answer within a certain deadline: e.g., information is delivered within 1 minute from the request time (i.e., before 11:01 AM for the previous request). The daily SLA specifies (a) the cost of a service request, (b) the promised QoS (i.e., the probability that the request is answered before the deadline) and (c) a penalty if the delivered QoS is lower than promised, for the considered day.. One agent a that constantly monitors (e.g., once every ten minutes) the price of a share, will issue 6 · 8 = 48 service requests during one 8-working-hours day. This agent is therefore entitled to submit 48 binary feedback reports by the end of the day, where every report signals that one of the requested answers was received or not before the deadline. By misreporting only one feedback (negative instead of positive; the other 47 reports remain unchanged) the agent expects:. • to lose amount ∆SP due to the side-payment for that report;. • to decrease the price of every service invocation by ∆p. Existing side-payment schemes make sure that ∆SP is always greater than ∆p; however, the total price decrease of agent a is 48∆p, as the price decrease also applies to the other 47 service invocations where a reported true feedback. By a similar argument, a will find it profitable to misreport all other positive reports, and she will end up reporting a clean set of 48 negative reports. Eliminating the lying incentives of agent a requires ∆SP ≥ 48∆p, which translates into a 480% increase of the original reputation side-payments. The cost of reputation management simply becomes too big. In this paper we present a new mechanism for rewarding truth-telling in settings where agents have several interactions and can submit several reports within a given timewindow. The first idea behind our mechanism is to group all reports of an agent from a given time period into a feedback set, and pay the agent only once based on her feedback set. Second, we introduce CHI-Scores as a basis for computing the side-payments. The CHI-Score for a feedback set is computed based on a Chi-square independence test [18] applied to the feedback set itself, and the set containing the feedback of all other agents. The CHI-Score reflects the correlation between the reports of one agent and those of the entire group. Third, we use CHI-Scores not only to pay the reporter, but also to weigh different feedback sets when computing the reputation of the provider. Finally, we explicitly model external lying incentives (e.g., decrease in price) to make sure that the side-payments based on CHI-Scores makes honest reporting optimal.. Like other agreement-based (between the considered report and the general opinion) side-payment schemes (see Section 2) the mechanism we propose is not incentive compatible in general. Truthful reporting is the optimal strategy only when an agent's beliefs regarding the reports of other agents are entirely determined by her direct experience (i.e., the agent does not have any prior information). This is a common assumption for software agents in multi-agent systems and therefore we particulary address our work to such environments. Moreover, the scheme is intuitive, computationally cheap, robust against small numbers of irrational reporters, and generates significantly lower costs than existing schemes (Section 4).. Section 2 discusses related work, Section 3 formally introduces the setting and our mechanism. An experimental evaluation of the mechanism is presented in Section 4, followed by future work and the conclusion. When client agents can submit several feedback reports within a certain period of time, existing payment schemes that reward honest feedback are either inefficient, or extremely expensive. In this paper we present a novel sidepayment scheme based on CHI-Scores. We consider the entire feedback set of an agent, not her individual reports. The CHI-Score of a feedback set results from a Chi-square independence test and reflects the correlation between the reports of one agent and those of the rest of the group. The score is used to weigh feedback sets when computing reputation information, and to scale the reputation side-payments. We prove that such monetary rewards make truth-telling rational, and show how external benefits obtained from lying can be counterbalanced. The mechanism can be extended to finer-grained feedback systems, and generates significantly lower costs. Experimental results show that a small number of irrational liars, does not significantly degrade the performance of the mechanism. The contribution of reputation information in dynamically scaling the prices of goods and services has been established both theoretically and experimentally. Dellarocas [3] studies an "eBay-like" market where sellers can strategically choose whether to ship or not the good purchased by a buyer. He proves the existence of an equilibrium where the reputation of the seller from the last N transactions determines the present price of the good. Experimental studies of eBay transactions [5, 15] confirm that the reputation of a seller affects the selling price of the auctioned goods.. Jurca and Faltings extend the analysis of reputation-based pricing to service oriented environments where providers with different capabilities coexist [10, 11] . Their results are based on two observations. First, all clients in a given group are probably treated equally 2 . Second, service providers cannot change the quality of the delivered service infinitely often. Therefore, the reputation information obtained by aggregating the feedback from the immediate past offers an accurate estimation of the real QoS delivered by the provider. In [10] , client's pay the price corresponding to yesterday's reputation. In [11] , a reputation-based SLA allows clients to be refunded at the end of a given time period if the provider's reputation is lower than promised. Both mechanism promote trustworthy behavior, as service providers have the incentive to deliver the promised QoS.. The question of honest reporting has been extensively addressed by Miller et al. in [12] . The mechanism uses the feedback of a future client (called the rater ) to rate (and compute the payment for) a submitted report. The present report is first used to update a probability distribution for the report of the rater. The payment is then computed by a scoring rule 3 that assesses how the actual report of the rater relates to the probability distribution induced by the rated report. Truthful reporting is a Nash equilibrium in all contexts: it is always optimal for an agent to report the truth 2 note that providers can have several customer groups that are treated differently: e.g., silver/gold/platinium clients 3 see [1] for a detailed description of scoring rules. The logarithmic function is an example of a scoring rule given that all other agents report the truth. Moreover, the side-payments can be scaled to account for reporting costs and external benefits obtained from cheating.. Prelec [14] considers a similar approach. His mechanism asks every agent two questions: the first, regarding the observed feedback, the second regarding the feedback other agents are likely to submit. Agents are rewarded if the feedback they report is "unexpectedly common" compared with the overall prediction made by the group about the feedback likely to occur. This information scoring makes truthful reporting pareto optimal.. [12] discusses the danger associated with using agreement for computing side-payments. When the report of an agent is paid according to how well it "agrees" with the general opinion, the optimal reporting strategy is to adhere to the expected majority. Take an eBay buyer cheated by a seller with a large positive feedback score. Despite the negative experience, the buyer continues to believe that most of the future buyers will experience good transactions. Therefore, the report that maximizes the agreement with future feedback is the false positive one.. Agreement-based payments can therefore reward honest feedback only when the agent's expectation of future transactions coincides with her direct experience. In the case of one interaction per agent, this is possible when the outcome of successive interactions are correlated. [7] documents such a scenario where the behavior of service providers is modeled by a Markov chain satisfying certain conditions.. When agents get feedback from several direct interactions, agreement-based payment does encourage truth-telling as long as agents do not have external, trusted third-party information. This assumption is common for multi-agent systems, and has been extensively used in social networks to filter out malicious reports. In TRAVOS [16] , the weights of peer reports are computed based on a Bayesian model assessing the agreement between previous recommendations and the direct experience. In CREDENCE [17] malicious reporters are filtered based on a distance measure between the agent's own observations and those of the reporter. Similar techniques are described in [20, 6, 19] .. A different approach to honest feedback elicitation is presented in [8] and [13] . They rate feedback for each transaction separately, independent of other transactions. The mechanism punishes both the client and the provider if they have conflicting reports regarding the outcome of the transaction in question. [8] proves that (in any equilibrium) the number of false reports collected by such a mechanism is limited by an upper bound. [13] show an implementation of the mechanism for the Peer-to-Peer environment.

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


Improving Document Clustering in a Learned Concept Space Most document clustering algorithms operate in a high dimensional bag-of-words space. The inherent presence of noise in such representation obviously degrades the performance of most of these approaches. In this paper we investigate an unsupervised dimensionality reduction technique for document clustering. This technique is based upon the assumption that terms co-occurring in the same context with the same frequencies are semantically related. On the basis of this assumption we first find term clusters using a classification version of the EM algorithm. Documents are then represented in the space of these term clusters and a multinomial mixture model (MM) is used to build document clusters. We empirically show on four document collections, Reuters-21578, Reuters RCV2-French, 20Newsgroups and WebKB, that this new text representation noticeably increases the performance of the MM model. By relating the proposed approach to the Probabilistic Latent Semantic Analysis (PLSA) model we further propose an extension of the latter in which an extra latent variable allows the model to co-cluster documents and terms simultaneously. We show on these four datasets that the proposed extended version of the PLSA model produces statistically significant improvements with respect to two clustering measures over all variants of the original PLSA and the MM models. With the ever-increasing volume of on-line textual information, an efficient partitioning of documents into clusters can constitute a real saving in terms of efficiency for various information retrieval or enterprise portal applications. Document clusters can for example, help users to quickly evaluate classical search engines results, or navigate through huge document collections [6] . They can also be useful in distributed search [24] or in extractive text summarization where topically related documents facilitate the search of relevant text-spans to be extracted for the summary [1, 15] .. Most existing text clustering approaches rely on the bag-of-words representation [6] . Using words as features, each document is represented in a high dimensional vocabulary space as a vector of (normalized) word frequency counts [20] . The sparsity (most documents contain less than 5% of the vocabulary terms [10] ) and the noise (text data extracted from internet pages, chat logs or e-mails may often contain spelling errors and abbreviations [14] ) in this representation indeed affect the final clustering performance.. These difficulties have motivated the development of dimensionality reduction techniques as a pre-processing step to determine a more compact and relevant document representation. Examples of such approaches are the singular value decomposition used in the Latent Semantic Indexing (LSI) [7] or other matrix factorization approaches like random projections [3] or non-negative matrix factorization [16, 25] . Matrix factorization approaches have successfully been applied to the clustering of text data, including web access log pages [18] . Other approaches for dimensionality reduction of text data include probabilistic models and co-clustering approaches. The former include the popular Probabilistic Latent Semantic Analysis [13] and Latent Dirichlet Allocation [4] . Those two models have successfully been used for the task of topic discovery [13, 12] . Coclustering approaches aim at simultaneously clustering documents and words. Recent advances include formulations in the bipartite graph framework [9] and in the matrix factorization framework [2] . Non informative words can also be removed by simple heuristics based for example, on their document frequencies [21] . These unsupervised approaches though less efficient than supervised feature selection methods allow to find less noisy representation space than the initial bag-of-words space.. In this paper we propose two methods for unsupervised dimensionality reduction in the context of document clustering. Both approaches rely on the idea of replacing the usual BOW document representation by a condensed semantic representation in a concept space. Concepts (also referred as word topics in the following) are identified by a probabilistic model. The first technique makes the hypothesis that words occurring with the same frequencies in the same documents are semantically related. Based on this assumption words are first partitioned into word-topics. Each document collection is then represented in the bag-of-concepts space by a vector where each feature corresponds to a word-topic representing the number of occurrences of words from that wordtopic in the document. Documents are then clustered in this concept space. We empirically show on Reuters-21578, Reuters RCV2-French, 20Newsgroups and WebKB document collections that the clustering performance of a multinomial mixture (MM) model in the concept space is significantly better than its clustering performance on the original vocabulary space. The second approach is an extension of the PLSA model (denoted by Ext-PLSA in the following) and it jointly performs topic identification and document clustering. In this case, we use two latent variables which respectively identify the word topics and the document clusters. This allows using PLSA for both multiple topic identification and clustering in a principled framework. Empirical results indicate that this extended version of the aspect model produces statistically significant improve-ments with respect to two clustering measures compared to the original PLSA and the MM models operating in the original and the induced concept spaces.. The remainder of this paper is organized as follows. Section 2 presents different probabilistic models for dimensionality reduction and document clustering we propose and use in our experiments. We present experimental results in section 3 and summarize our contribution in section 4. In this paper, we have studied the problem of document clustering in a reduced concept space. Our first contribution sought to find this space by partitioning vocabulary words according to the hypothesis that words co-occurring in the same context with the same frequency are topically related. Experiments on four datasets have shown that the performance of a baseline MM model is significantly improved when it operates in the induced concept space. We further proposed an extended version of the PLSA model which learns jointly the word topics and the document clusters. Experiments conducted on the Reuters-21578, RCV2-French, 20Newsgroups and WebKB datasets have shown that the proposed Ext-PLSA performs significantly better than the original PLSA model. Compared to the C-MM which partitions documents in the concept space induced by CEM, the join clustering of documents and words performed by Ext-PLSA presents the advantage to reduce the bias of the successive clustering steps done previously. We conducted a number of experiments aimed at evaluating how the representation in the concept space can help to improve the clustering performance. The multinomial model was used both in its basic version (section 2.2) and for the concept learning method (section 2.4). PLSA was used both for direct document clustering and for finding concept spaces (word topics). In the following, these models are denoted by MM and PLSA when they perform clustering in the original vocabulary space. When clustering is performed in the concept space, we use the following notations. A first letter identifying the word topic algorithm (respectively C or P for CEM and PLSA) followed by the acronym of the clustering approach. Thus C-MM denotes document clustering with MM on the concept space induced by CEM, P-MM denotes document clustering with MM on the concept space induced by PLSA, C-PLSA is the document clustering with PLSA on the concept space of CEM and finally P-PLSA denotes two successive applications of PLSA, first for word topics identification and then for document clustering onto the induced concept space. In the light of these results we compare in the second part of our experiments the performance of the extended PLSA (Ext-PLSA) against all the previous clustering models as well as the Kmeans and LDA algorithms [4] and a NMF model obtained by minimizing the Frobenius norm. As KL-minimal NMF is essentially equivalent to PLSA [11], we do not include it in our comparison. Latent Semantic Indexing [7] is another popular matrix factorization method for the analysis of text data. But as NMF outperforms LSI for document clustering [25] , we do not include LSI in our comparison. In our experiments, we used standard labeled text classification corpora with the class labels representing an objective knowledge reflecting the datasets implicit structure. The following sections describe the corpora we used in our experiments as well as the accuracy measures we used to evaluate the performance of the proposed models.

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