A spatiotemporal compression based approach for efficient big data processing on Cloud It is well known that processing big graph data can be costly on Cloud. Processing big graph data introduces complex and multiple iterations that raise challenges such as parallel memory bottlenecks, deadlocks, and inefficiency. To tackle the challenges, we propose a novel technique for effectively processing big graph data on Cloud. Specifically, the big data will be compressed with its spatiotemporal features on Cloud. By exploring spatial data correlation, we partition a graph data set into clusters. In a cluster, the workload can be shared by the inference based on time series similarity. By exploiting temporal correlation, in each time series or a single graph edge, temporal data compression is conducted. A novel data driven scheduling is also developed for data processing optimisation. The experiment results demonstrate that the spatiotemporal compression and scheduling achieve significant performance gains in terms of data size and data fidelity loss. With the fast development of modern information technology, we enter a new era of data explosion which introduces the new problems for big data processing. The definition of big data is as follows. Big data [1] [2] [3] [4] is a collection of data sets so large and complex that it becomes difficult to process with on-hand database management systems or traditional data processing applications. It represents the progress of the human cognitive processes, usually including data sets with sizes beyond the ability of current technology, method and theory to capture, manage, and process the data within a tolerable elapsed time [2, 3, 10, 11] . Big data has the typical characteristics of three 'V's, volume, variety and velocity. Big data sets come from many areas, including meteorology, connectomics, complex physics simulations [1, 2] , genomics [1] , biological study, gene analysis and environmental research [2] . Big data sets also come from finance and business informatics in which Internet search is greatly influenced and limited. These data sets grow in high speed and size because they are increasingly being collected or generated by ubiquitous mobile sensing devices, aerial sensory systems, cameras, microphones, software logs, radio-frequency identification readers, business transactions and wireless sensor networks [1, 2] . According to literature [3, 4] , since 1980s, the technological generated information data doubled its size in every 40 months all over the world. In the year of 2012, there were 2.5 quintillion (2.5 × 10 18 ) bytes of data being generated every day. Hence, the technique to process big data has become a fundamental and critical challenge for modern society.. Cloud computing can be regarded as an ingenious combination of a series of developed or developing ideas and technologies, establishing a pay-as-you-go business model by offering IT services using economies of scale [5] [6] [7] [8] [9] [10] [15] [16] [17] [18] . Cloud computing is the use of computing resources (hardware and software) that are delivered as a service over a network (typically the Internet). The name comes from the use of a Cloud-shaped symbol as an abstraction for the complex infrastructure it contains in system diagrams. Cloud computing entrusts remote services with a user's data, software and computation. It allows companies to avoid upfront infrastructure costs, and focus on projects that differentiate their businesses instead of infrastructure. Cloud computing relies on sharing of resources to achieve coherence and economies of scale similar to a utility (like the electricity grid) over a network. At the foundation of Cloud computing is the broader concept of converged infrastructure and shared services.. Cloud computing provides an ideal platform for big data storage, dissemination and interpreting with its massive computation power. In lots of real world applications, such as social networks, complex network monitoring, the scientific analysis of protein interactions and wireless sensor networks self monitoring, it is avoidable to encounter the problem of dealing with big graph data and big graph data streams. To monitor individual nodes, their related behaviours and detecting the abnormal operation, huge amount of streaming graph data must be processed and analysed. It is well known that the processing of big graph data can be costly and inefficient with current typical Cloud computing techniques or tools, such as Map-Reduce [27] [28] [29] [30] . Those big graph data processing techniques introduce complex and multiple iterations. Those iterations and recursive algorithms may cause computation problems such as parallel memory bottlenecks, deadlocks on data accessing, algorithm inefficiency [27] [28] [29] [30] . In other words, under some circumstances, even with Cloud platform, the task of big data processing may introduce unacceptable time cost, or even lead to processing failures.. To curb and avoid the formation of the above problems, in this paper, we propose a novel technique for effectively processing big data, especially streaming big graph data on Cloud. Generally speaking, the big data will be compressed firstly with its spatiotemporal features on Cloud. By exploring spatial correlation of big data, we partition a graph data set into clusters so that, in one cluster all edges from the graph have similar time series of data. In each cluster, the workload can be shared by the inference based on time series similarity. By exploiting temporal correlation, in each time series or a single edge in a graph data set, temporal data compression is conducted according to time series trend and data item order. Based on the spatiotemporal compression, a data driven scheduling will be developed to allocate the computation and storage on Cloud for better big data processing services. The evaluation is conducted on three aspects for measuring the performance gains of this novel data processing approach. Firstly, the data size can be significantly reduced by the spatiotemporal compression on Cloud compared to the previous big data processing techniques. Secondly, our data driven scheduling based on the spatiotemporal compression can distribute big data processing workload optimally on Cloud to achieve significant time performance gains. Thirdly, the data processing quality and fidelity loss of our proposed approach comes to most of application requirement. Cloud promises an ideal platform with massive computation power and storage capacity for processing big data that is of high variety, volume, veracity, and velocity. To reduce the quantity and the processing time of big data sets encountered by the current typical Cloud big data processing techniques, in this paper, we proposed a spatiotemporal compression based approach on Cloud to deal with big data and big graph data from real world applications. In our technique, the big data was compressed firstly according to its spatiotemporal features on Cloud. Based on this spatiotemporal compression, a data driven scheduling was developed to allocate the computation and storage of Cloud for providing better big data processing services. The evaluation was conducted over our U-Cloud platform to demonstrate that the spatiotemporal compression could significantly reduce the data size compared to the previous big data processing techniques on Cloud. Furthermore, our data driven scheduling distributed big data processing workload optimally on Cloud to achieve significant time performance gains. Last but not least, the evaluation results also demonstrated that the data processing quality and fidelity loss of our proposed approach met most of the application requirements.. Data compression can be based on different data correlations or data models. As future work, more spatiotemporal correlations should be exploited and modelled to effectively reduce different big data sets. In accordance with various data correlations and compression models, the scheduling should also be changed dynamically to generate fair workload distribution and to achieve optimal time performance. Nowadays, big data is measured with terabyte, petabyte, exabyte or zettabyte which offer a direct feeling of big data size [3] . The huge size is one important feature, but not the only one feature for big data. It can be typically described as the characteristics of three 'V's, volume, variety and velocity. Specifically, big data sets have a large or even endless data volume which makes its computation and management exhaust incredible resources. In addition to the large volume, the sources of big data sets can be very diverse. It means that the format and structure of big data set can change. The data types are far more beyond traditional structured data under the theme of big data. The high velocity of big data makes it time sensitive and stream-like. The main challenges of big data processing include capture, recover, storage, search, sharing, analysis, interpretation and visualization [1, 2] .. There are some real world big data examples as follows [1] [2] [3] [4] 31] . For business, finance institute and scientific research, there is important information buried under the ocean of big data. That information can bring significant financial value. For example, the health care financial cost in US is around $300 billion per year, which is 0.7% annual productivity growth of US. The effective mining and processing big data for US health care means million dollars financial saving. The big data also comes from US retail market. There is 60% retail increase per year, which counts for 0/5%-1% US annual productivity. To analyse and interpret that big data, it can help business to improve its market profits. In the US manufacturing industry, with the adoption of some proper big data processing techniques, the cost for product development decreases up to 50% and the working capital reduces up to 7%. The cost for Europe public sector administration is around €250 billion per year. It occupies 0.5% annual productivity growth of the Europe Union. To understand the big data from climate observation in real time is critical for scientific research, agriculture, public transportation, weather insurance company, aviation and military activities. It can protect profits of everybody from bad weather.. In order to process big data sets, different techniques, approaches and platforms have designed and developed. Whatever the technology is based on, hardware or software, they mainly focus on three topics, increasing data storage, increasing data processing and data availability. Data storage has grown significantly with shifting from analog to digital devices in past 20 years. Similarly to storage devices, the computation capability of modern processing devices can reach more than 6.5 × 10 12 million instructions per second. The computation capacity has experienced a sharp increase. Current techniques for big data processing and analysis include classification, parallel computing, distributed computing, cluster analysis, crowd sourcing, regression, spatial analysis, learning, temporal analysis, neural networks, network analysis, optimisation, prediction, pattern recognition, data fusion & integration and visualization, etc.. Those current developments offer a solid support for processing big data in a distributed and paralleled model. Current technologies such as grid and Cloud computing all aim to access huge computing power by aggregating multiple resources and offering an integral system view [8, 9] . Among these technologies, Cloud computing proves to be a powerful architecture conduct large-scale, distributed and paralleled processing for complex computing. Cloud computing [5, 6] has offered an approach to abstract and use computing infrastructure. An important aim of Cloud computing is to deliver computing as a solution for processing big data, such as large-scale, multi-media and high dimensional data sets. Both big data and Cloud computing are the fastest-moving technologies identified in Gartner Inc.'s 2012 Hype Cycle for Emerging Technologies [5, 7] . Therefore, Cloud computing is a fine answer when talking about big data processing method for different resources.. At present, some work has been done for processing big data with Cloud. For example, Amazon EC2 infrastructure as service is a typical Cloud based distributed system for big data processing. Amazon S3 supports distributed storage. MapReduce [12, 13, 28, 29 ] is adopted as a programming model for big data processing over Cloud computing. Plenty of recent research has investigated the issues of processing incremental data on Cloud. Kienzler et al. [24] designed a "stream-as-you-go" approach to access and process on incremental data for data-intensive Cloud applications via a steam-based data management architecture. Bhatotia et al. [25] extended the traditional Hadoop framework [14] to a novel one named as Incoop by incorporating several techniques like task partition and memorization-aware schedule. Olston et al. [26] presented a continuous workflow system called Nova on top of Pig/Hadoop through stateful incremental data processing.. Recently, MapReduce has been widely revised from a batch processing framework into a more incremental one to analyse huge-volume incremental data on Cloud [13] . It is a framework for processing parallelisable problems across big datasets using a large number of computers (nodes), collectively referred to as a cluster in which all computers (nodes) are on the same local network and use similar hardware; or a grid in which the nodes are shared across geographically and administratively distributed systems. Computational processing can occur on data sets stored either in a file system with unstructured or semi-structured data, or in a database with structured data. MapReduce can take advantage of locality of data, processing data on or near the storage assets to decrease transmission of data. There two main steps to use MapReduce function. At "Map" step, the master node takes the input, divides it into smaller sub-problems, and distributes them to worker nodes. A worker node may do this again in turn, leading to a multi-level tree structure. The worker node processes the smaller problem, and passes the answer back to its master node. At "Reduce" step, the master node then gathers the answers to all the sub-problems and combines them in some way to generate the final output. MapReduce can be applied to significantly larger datasets than "commodity" servers can handle. It can sort a petabyte of data in only a few hours. The parallelism also offers some possibility of recovering from partial failure of servers or storage during the operation. If one mapper or reducer function fails, the work can be rescheduled if the original input data is still available.. However, MapReduce also has its disadvantage in terms big data processing over Cloud computing. Under MapReduce programming model for Cloud, target problem needs to be parallelisable and split into a set of smaller code. Smaller pieces of code are executed in parallel over Cloud computing platform. This working style of MapReduce introduces lots of iterations when encountering big graph data. The real world big data graph examples include bipartite of appearing phrases in documents, social networks, airline graph, gene expression data, protein interactions and sensor networks monitoring. The modern graph data may take the form of data stream where newly created data is added into big data graph continuously. To process that big data sets or stream in big data graph, MapReduce may not be suitable because many iterations are brought for parallel graph processing [27, 30, 32] . Firstly, online query support is insufficient. Secondly, graph data cannot be intuitively expressed by MapReduce. Thirdly, each intermediate iteration result of graph data needs to be materialized. The whole graph structure needs to be sent on networks iteration after iteration [32] which incurs huge data movement.. That huge amount of intermediate results and data movement may cause time inefficiency, deadlock, errors and bad performance. So, how to design efficient parallel algorithms for processing big graph data, or big streaming graph data becomes an interesting research topic.. Spatiotemporal data suppression and its related data clustering, compression techniques can be widely found in network data processing area [19] [20] [21] [22] . They are useful in terms of data exchange reduction over Cloud platform. Specifically, the work of CAG [20] presented an updated CAG algorithm that forms clusters of nodes with similar values within a given threshold (spatial correlations). The formed clusters remain unchanged as long as the sensor values stay within the given threshold (temporal correlations) over time. With the clustering technique, every time, there is only one sensor data being transmitted; whereas the data aggregation algorithm without clustering requires all nodes to transmit. Low Energy Adaptive Clustering Hierarchy ("LEACH") [22] is a TDMA-based MAC protocol which is integrated with clustering and a simple routing protocol in networks systems such as WSN. The goal of LEACH is to provide data aggregation for sensor networks while providing energy efficient communication that does not predictably deplete some nodes more than others. LEACH is a hierarchical protocol in which most nodes transmit to cluster-heads, and the cluster-heads aggregate and compress the data and forward it to the base station. Each node uses a stochastic algorithm at each round to determine whether it will become a cluster-head in this round. Nodes that have been selected as cluster-heads cannot become cluster-heads again for next k rounds in LEACH, where k is the desired percentage of cluster heads. Hence, each node has a 1/k probability of becoming a cluster-head in each round. At the end of each round, each node that is not a cluster head selects the closest cluster-head to join a cluster. Finally, all nodes that are not cluster-heads only communicate with the cluster head according to the schedule created by the cluster-head. LEACH offers an approach to automatically select suitable cluster-heads in terms of energy situation and radio coverage. It solves the technical issues such as topology construction and routing table maintenance. Edara [21] proposed a temporal trend based time series prediction model which can predict the future data with a small cost in real time. With respect to data compression, the temporal and order compression [19] techniques were used to reduce the data exchanges within a network topology. It can be further calibrated to satisfy the big data set reduction over Cloud platform. In work [23] proposed by Ail, the spatiotemporal based clustering and order compression were chosen adaptively for data compression over sensor networks. However, the data exchanging model is quite similar to that over a data exchanging network analysed with Cloud computing. In other words, the compression idea in WSN can be used on Cloud to reduce the size of big data set and graph data. As shown by the motivating example in Fig. 2 , there are several time series collected by the real world noisy sensor nodes deployed in a public transportation area. The sound is measured in standard Decibel (dB).. Specifically, data time series 1 and 2 are quite similar to each other according to the whole sampling period from sample 1 to 90. In other words, time series 1 or 2 can be used to approximately represent each other, which is used by most of current clustering algorithms to reduce the data size. For example, to report the three time series 1, 2 and 3, previous clustering algorithms can divide three time series into 2 time series groups A and B. In group A, there are time series 1 and 2 from sensor 1 and sensor 2. In group B, there is time series of sensor 3. However, there is one problem in the previous clustering algorithms. The timing of re-clustering for time series is not optimal. Because the re-clustering frequency has huge influence for the energy cost, for a given data series set, we want to do the minimum re-clustering to capture the maximum time series difference. In Fig. 2 , it can be observed that, from sample 65, the data feature of time series 1, 2 and 3 changes. The time series before sample 65 is very bumpy. It means that, the difference between time series 1, 2 and 3 can change quickly. To capture that changing, more clustering operation is required. But after sample 65, time series 1, 2 and 3 become relatively smooth and static. It means that with less re-clustering operation, the partition of time series groups can be done with the satisfaction to accuracy requirement. In order to capture these attributes of three time series and carry out effective clustering, different method can be adopted. For example, if the data window with of each node can be maintained by a cluster-head, we can use normal regression to predict the data trend of each time series. Hence, that data trend can be used as a criterion for sensor nodes partition in each cluster. Furthermore, how to choose an optimal time frequency of re-clustering according to the feed back of analysis of data history raises an interesting research topic. In this paper, we develop a clustering algorithm with improved data aggregation which in stead of carrying out regression over a set of historical data directly, it carries out data aggregation over a consecutively series of weighted data changes. For example, in Fig. 2 , to predict the changing trend after sample 65, the prediction regression model will not directly work on the data samples before time stamp 65. As an alternative, a series of data trends with time stamp from 1 to 64 will be calculated for regression. In addition, with our proposed method, the problem of how to choose an optimal timing for re-clustering will also be discussed. We will give an approach to choose a suitable data distribution to deploy our proposed clustering. Hence, over the unsuitable data distributions, the clustering can be terminated to avoid the cost of frequent clustering operations.

O B I O O O O B I O O O O O O O O O O B I O O O O O O O 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 B I O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O B I O 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 B I 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 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 B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 B I O O O O O O O O O O B I O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O B I O O O O O O O O O O O O O O O O O B I O O O O O O O O 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 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 B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O B I O O O O O B I O O O O O O O O O O O O O O O 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 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 B O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O B I O O O O O O B 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 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 B I O O O O O O O O B I 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 B I O O O B O O O O O O O O O O O O O B I O O O O O O O O O O O O O O B I O O O O O O O O O O B I 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 B I O O O O O O O O O O O B O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O B I O O O O O O O O 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 B I O O O O O O O O O O O O O O O O O B I O O O O B I O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O 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 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 B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 B I 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 B I 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 B I O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O B I O 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 B I 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 B I O O O O O O O O O O O O O O B I O O O O O B I O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O 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 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 Computational Power of Demand Queries Abstract. We study the computational power of iterative combinatorial auctions. Most existing iterative combinatorial auctions are based on repeatedly suggesting prices for bundles of items and querying the bidders for their "demand" under these prices. We prove several results regarding such auctions that use a polynomial number of demand queries: (1) that such auctions can simulate several other natural types of queries; (2) that they can approximate the optimal allocation as well as generally possible using polynomial communication or computation, while weaker types of queries cannot do so; (3) that such auctions that use only item prices may solve allocation problems in communication cost that is exponentially lower than the cost incurred by auctions that use prices for bundles. For the latter result, we initiate the study of how prices of bundles can be represented when they are not linear and show that the "default" representation has severe limitations. Our results hold for any series of demand queries with polynomial length, without any additional restrictions on the queries (e.g., to ascending prices).

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


Scale invariance of immune system response rates and times: perspectives on immune system architecture and implications for artificial immune systems Most biological rates and times decrease systematically with increasing organism body size. We use an ordinary differential equation (ODE) model of West Nile Virus in birds to show that pathogen replication rates decline with host body size, but natural immune system (NIS) response rates do not change systematically with body size. The scale-invariant detection and response of the NIS is surprising since the NIS has to search for small quantities of pathogens through larger physical spaces in larger organisms, and also respond by producing larger absolute quantities of antibody in larger organisms. We hypothesize that the NIS has evolved an architecture to efficiently neutralize pathogens. We investigate three different hypothesized NIS architectures using an Agent Based Model (ABM). We find that a sub-modular NIS architecture, in which lymph node number and size both increase sublinearly with body size, efficiently balances the tradeoff between local pathogen detection and global response. This leads to nearly scale-invariant detection and response consistent with experimental data. Similar to the NIS, physical space and resources are also important constraints on distributed systems, for example low-powered robots connected by short-range wireless communication. We show that the sub-modular design principles of the NIS can be applied to problems such as distributed robot control to efficiently balance the tradeoff between local search for a solution and global response or proliferation of the solution. We demonstrate that the lymphatic network of the NIS efficiently balances local and global communication, and we suggest a new approach for Artificial Immune Systems (AIS) that uses a sub-modular architecture to facilitate distributed search. Many emerging pathogens infect multiple host species (Woolhouse et al. 2001) , and multihost pathogens may have very different dynamics in different host species (Cable et al. 2007) . Understanding how quickly pathogens replicate and how quickly the natural immune system (NIS) responds is important for predicting the epidemic spread of emerging pathogens. We show that pathogen replication rates decline systematically with increasing host body size, but NIS response times do not increase significantly. We discuss how the decentralized architecture of the immune system facilitates parallel search, enabling NIS response times that do not increase substantially with body size.. The NIS solves a search problem in both physical space and antigen space. For the pathogens considered here, the length of the search is determined by the time it takes for a cognate B cell to encounter antigen. Encounter times depend on the size of the physical space in which the search occurs. This is a difficult search problem since very rare antigenspecific NIS cells have to search for small quantities of antigen throughout the body. For example, a mosquito injects 10 5 live West Nile Virus particles into a vertebrate host that has billions or trillions of cells (Styer et al. 2007 ). The research we describe here suggests that the time for the immune system to detect and neutralize the pathogen is nearly independent of the size of the organism. We call this scale-invariant detection and response.. This is counter-intuitive, since if we inject a sparrow and a horse with the same amount of pathogen, the immune system of the horse has to search a much larger physical space to find the pathogen, compared to the sparrow. This research models how different potential architectures of the lymphatic network enable the NIS to mount an effective immune response that neutralizes pathogens in time that is independent of host body size. Physical space and resource limitations can also constrain Artificial Immune Systems (AIS) . Our research shows how the optimal design of such AIS can be informed by architectural strategies employed by the NIS.. In addition to the immune system having to search larger spaces in larger organisms, larger body size may be expected to slow immune system response times because the metabolic rate of cells is lower in larger species (Brown et al. 2004) . The metabolic rate of each cell is constrained by the rate at which nutrients and oxygen are supplied by the cardiovascular network. The rate at which this network supplies nutrients to each cell (R cell ) scales as the body mass (M) raised to an exponent of −1/4: R cell ∝ M −1/4 such that individual cellular metabolic rates decrease as the body mass increases (West et al. 1997; Brown et al. 2004 ). The metabolic rate of a cell dictates the pace of many biological processes (Brown et al. 2004 ). This could affect NIS search times by reducing movement and proliferation of immune cells (Wiegel and Perelson 2004) . Rates of DNA and protein synthesis are also dependent on the cellular metabolic rate and could influence the rate at which pathogens replicate inside infected cells (Cable et al. 2007 ).. The possibilities that NIS cells and pathogens may move and proliferate at speeds independent of mass (∝ M 0 ) or proportional to cellular metabolic rate (∝ M −1/4 ) lead to four hypotheses, shown in Table 1 , as originally proposed by Wiegel and Perelson (2004) .. We combine an ordinary differential equation model, an Agent Based Model (ABM) and empirical results from experimental infection studies on West Nile Virus (WNV) (Komar et al. 2003; Bunning et al. 2002; Austgen et al. 2004) in what is the first test that we are aware of examining the effects of body size on pathogen replication and immune system response rates. Our results are consistent with H2: pathogen replication rate ∝ M −1/4 and NIS rates ∝ M 0 .. The remainder of the paper is organized as follows: Sect. 2 gives an introduction to the relevant immunology; our statistical methods are outlined in Sect. 3; Sect. 4 discusses an ordinary differential equation model of pathogen growth and immune response; Sect. 5 discusses the difficulties faced by the NIS in searching space; we use an ABM to derive scaling relations for NIS cell detection and migration times in Sect. 6; the results are summarized in Sect. 7; Sect. 8 explains how a sub-modular NIS architecture balances fast search times and fast communication to recruit NIS cells, leading to scale-invariant detection; Sect. 9 discusses the applications and implications for this work in distributed AIS using an example of multi-robot control, and lastly we make concluding remarks in Sect. 10. Host body size constrains pathogen replication rates due to the physical characteristics of transportation networks that supply infected and normal cells with energy. Host body size also constrains NIS detection and response times by increasing the physical size of search spaces. The NIS is comprised of rare antigen-specific immune system cells that it must utilize to search for initially small numbers of pathogens localized in a large physical space.. The NIS solves this classic search for a 'needle in a haystack' in time that is almost invariant of the size of the organism. The decentralized nature of the lymphatic network also helps in efficient pathogen detection by acting as a small volume of tissue where DCs can efficiently present antigen to T cells. The NIS must also respond to the antigen by producing antibodies (in the case of WNV) proportional to the mass of the organism. From empirical data, that time also appears independent of body size.. We use an ODE model to show that NIS response rates are independent of host body size and pathogen replication rates decrease with body size. We examine three different hypothesized NIS architectures using an agent based model, to explain the scale-invariant detection and response times of the NIS. The sub-modular detection network strikes a balance between the two opposing goals of antigen detection (local communication) and antibody production (global communication), and is consistent with observed numbers and sizes of LN. This sub-modular architecture of the lymphatic network must simultaneously provide systemic protection to the entire body while protecting each local volume of tissue equally well. Thus, the lymphatic architecture lies between the extremes of the fully centralized cardiovascular network (in which blood is oxygenated in a single location) and the fully decentralized concept of the protecton (in which a fixed number and diversity of lymphocytes protects every volume of tissue).. We demonstrated that a sub-modular architecture effectively balances the tradeoff between local search for a solution and global distribution of the solution in distributed robot control. In addition to incorporating NIS inspired distributed search algorithms into AIS, we suggest that AIS can replicate the sub-modular architecture used by the NIS to balance the tradeoff between local and global communication. We first use an ABM to calculate the detection and migration times in (5) for mice and then show how each of these times scale with LN and DR dimensions. We then use these scaling relations to derive analytical expressions for detection, migration and communication times for three hypotheses of LN organization. A DR was simulated as a cubic compartment of side 4000 µm with a cubic LN of length 1000 µm. The mean time taken by DCs to detect antigen and the time taken by an antigenspecific T cell to recognize antigen on DC are shown in Table 4 (due to the long execution time of the ABM, we took the average of 10 simulations). These are in agreement with experimental observations in mice (Miller et al. 2004 ). The total time to detect anti-. is then around 19 hours. This is in agreement with experimental studies in mice (Itano and Jenkins 2003) and consistent with our observation that peak viral concentration occurs in day 2 to 4 for WNV across organisms, given our hypothesis that the peak occurs due to WNV-specific NIS cells, which must first have come into contact with WNV in the LN.. The DR and LN regions were then scaled up and we observed how DC detection, migration and T cell interaction times scaled with the size of the DR and LN. We simulated 3 cubic DRs: DR of length 1000 µm with LN of length 250 µm, DR of length 2000 µm with LN of length 500 µm, and DR of length 4000 µm with a LN of length 1000 µm. The observed scaling relations are in Table 5 and are consistent with DC migration time scaling linearly with the mean distance from DR to LN. The time for DC to detect antigen-specific T cell in LN was found to be uncorrelated with the size of the LN.. We now explore three competing hypotheses of lymphatic system organization ( Fig. 5 ).

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


Experimental Case Studies for Investigating E-Banking Phishing Techniques and Attack Strategies Abstract Phishing is a form of electronic identity theft in which a combination of social engineering and Web site spoofing techniques is used to trick a user into revealing confidential information with economic value. The problem of social engineering attack is that there is no single solution to eliminate it completely, since it deals largely with the human factor. This is why implementing empirical experiments is very crucial in order to study and to analyze all malicious and deceiving phishing Web site attack techniques and strategies. In this paper, three different kinds of phishing experiment case studies have been conducted to shed some light into social engineering attacks, such as phone phishing and phishing Web site attacks for designing effective countermeasures and analyzing the efficiency of performing security awareness about phishing threats. Results and reactions to our experiments show the importance of conducting phishing training awareness for all users and doubling our efforts in developing phishing prevention techniques. Results also suggest that traditional standard security phishing factor indicators are not always effective for detecting phishing websites, and alternative intelligent phishing detection approaches are needed. Online services simplify our lives. They allow us to access information ubiquitously and are also useful for service providers because they reduce the operational costs involved in offering a service. For example, online banking over the Web has become indispensable for customers as well as for banks. Unfortunately, interacting with an online service such as a banking Web application often requires a certain degree of technical sophistication that not all Internet users possess. For the last decade, such naive users have been increasingly targeted by phishing attacks that are launched by miscreants who are aiming to make an easy profit by means of illegal financial transactions. Phishing is a form of electronic identity theft in which a combination of social engineering and Web site spoofing techniques is employed to trick a user into revealing confidential information of economic value. Phishing techniques are continuously being updated, and there are always new variations appearing. Phishing attackers use various tactics to lure or hijack a browser into visiting bogus sites. Ordinary Internet users cannot become familiar with all these phishing techniques easily. Unfortunately, phishing attacks are growing, both in numbers and in complexity. Phishing websites are becoming increasingly sophisticated. They can capture e-banking website details automatically without any action on the part of the victim.. Phishing website attacks are growing at a torrid pace. The numbers of phishing attacks and reported phishing sites are increasing every year, even every month. Damage caused by phishing is severe. The APWG (Anti-Phishing Working Group) is an industry association focused on eliminating identity theft and fraud that result from the growing problem of phishing and email spoofing. This voluntary-based organization provides a forum to discuss phishing issues, trials and evaluations of potential technology solutions and access to a centralized repository of reports on phishing attacks [39] . The number of unique phishing websites detected by this organization showed that there has been a huge increase in unique phishing sites all over the world. In December 2005, the forged phishing site alone exceeded 7,000 [5] . APWG has also recently released a new report containing statistics of phishing attacks during the first half of 2009. According to the APWG global phishing survey report [4] , there were at least 55,698 phishing attacks, around 7% higher than the previous year. Those attacks occurred on 30,131 unique domain names. APWG identified that 4,382 were registered by phishers, representing about 14.5% of the domain names involved in phishing. In addition, phishing was detected on 3,563 unique IP addresses. The Gartner study [14] shows that phishing attacks escalated in 2007; more than $3 Billion was lost to these attacks. The survey found that 3.6 million adults lost money in phishing attacks in the 12 months ending in August 2007, when compared with the 2.3 million who did so the year before. And, in 2008, Gartner reported a 39.8% increase over the number of victims a year earlier. Media outlets have reported that phishing website-related scams have resulted in more than $5 billion in fraudulent bank and financial charges to date [25] . It is being predicted that social engineering phishing attacks will be on the rise in the years to come. Billions of dollars are lost every year by corporations and Internet users to social engineering attacks, in the process making participants in e-commerce increasingly distrustful. The problem of social engineering attack is that there is no single solution to eliminate it completely, since it deals largely with the human factor. That is why implementing empirical experiments was very crucial in order to study and to analyze all malicious and deceiving strategies and attack techniques that were successful in confusing general users about their assessments of the authenticity and the legitimacy of websites. These experiments showed that there is no substitute for a good awareness campaign when implementing the social engineering elements of security policy.. Our experimental case studies point to the need for extensive educational campaigns about phishing and other security threats. People can become less vulnerable with a heightened awareness of the dangers of phishing. Our experimental case studies also suggest that a new approach is needed to design a usable model for detecting e-banking phishing websites, taking into consideration the user's knowledge, understanding, awareness and consideration of the phishing pointers located outside the user's center of consideration.. Results and reactions to our experiments show the importance of conducting phishing training awareness for all users. Nevertheless, these results illustrate that traditional standard security phishing factor indicators are not always effective enough for detecting phishing website and suggest that alternative intelligent approaches are needed.. Generally speaking, the primary advantage for criminals conducting phishing attacks is the public's lack of education and awareness of both the existence of financial crimes targeting Internet users and the policies and procedures of online sites for contacting their customers regarding account information and maintenance issues. Thus, public education and awareness are important factors to counter phishing. As awareness of phishing grows among consumers, the incidences of phishing will shrink to a certain extent.. However, getting rid of phishing through education alone will be very difficult. First of all, there are always new or technology-naive Internet users who do not have any experience and become victims of phishing. Another aspect is that phishers are getting better and better at mimicking genuine emails and websites; even the security expert may sometimes be fooled.. As a future work, we want to build an e-learning security awareness application regarding phishing attacks and scams; we will implement it to be used as a learning tool to increase the user awareness regarding phishing attacks and scams. We plan to demonstrate our decision justification extracted phishing features and their significance influence as summarized report. We also want to integrate phishing detection assessment user interface (example: short questionnaires, tests cases) to measure the effectiveness of our e-learning tools. To make the learning mechanism more effective and interactive, we are considering integrating concept of phishing games on the e-learning process. This ensures our package to be more dynamic and user friendly.

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


Partition-distance methods for assessing spatial segmentations of images and videos The primary goal of the research on image segmentation is to produce better segmentation algorithms. In spite of almost 50 years of research and development in this field, the general problem of splitting an image into meaningful regions remains unsolved. New and emerging techniques are constantly being applied with reduced success. The design of each of these new segmentation algorithms requires spending careful attention judging the effectiveness of the technique. This paper demonstrates how the proposed methodology is well suited to perform a quantitative comparison between image segmentation algorithms using a ground-truth segmentation. It consists of a general framework already partially proposed in the literature, but dispersed over several works. The framework is based on the principle of eliminating the minimum number of elements such that a specified condition is met. This rule translates directly into a global optimization procedure and the intersection-graph between two partitions emerges as the natural tool to solve it. The objective of this paper is to summarize, aggregate and extend the dispersed work. The principle is clarified, presented striped of unnecessary supports and extended to sequences of images. Our study shows that the proposed framework for segmentation performance evaluation is simple, general and mathematically sound. Image segmentation is one of the largest branches of image processing, being the first important process in innumerous applications, with subsequent operations relying heavily on its performance. Fifty years after the birth of the scanning and computerized processing of images at the National Bureau of Standards in 1956 [10] , literally thousands of image processing algorithms have been published. The scope of these algorithms is fairly expansive, ranging from improving the perceived quality of an image, by means of image enhancement, to automatically extracting and delineating regions of interest such as in the case of image segmentation.. The segmentation process partitions the image into different meaningful regions with homogeneous characteristics, using discontinuities or similarities of image components. The quality of obtained results is still improving and the segmentation algorithms are becoming more and more general. Nevertheless, they still only give satisfying results in very specific applications. As in many other fields of algorithm design, there has been a portion of the process dedicated to algorithm testing. Testing is the process of determining whether a particular algorithm has satisfied or not its specifications, supported by criteria such as accuracy and robustness.. A major limitation in the design of image segmentation algorithms lies in the difficulty in demonstrating that algorithms work to an acceptable measure of performance. This difficulty arises from the ill-posedness of the image segmentation problem: for the same image, the optimum segmentation can be different, depending on the end application. Automatic spatial segmentation is, therefore, a problem without a general solution, at least with the current state-of-the-art. This state of affairs is reflected in the difficulty to conceive assessing methods incorporating general criteria to analyse results.. Evaluation methods of image segmentation algorithms have been broadly divided into analytical methods and empirical methods: ''The analytical methods directly examine and assess the segmentation algorithms themselves by analyzing their principles and properties. The empirical methods indirectly judge the segmentation algorithm by applying them to test images and measuring the quality of segmentation results" [20] . Although using analytical methods to evaluate segmentation algorithms does not require implementing them (influences caused by the arrangement of evaluation experiments are avoided), they have not received much attention mainly because of the difficulty to compare algorithms solely by analytical studies.. Empirical methods are further classified into two types: goodness methods and discrepancy methods. Empirical discrepancy methods are based on the availability of a reference segmentation, also called gold standard or ground truth. The disparity between an actually segmented image and a correctly/ideally segmented image can be used to assess the algorithm's performance. In the empirical goodness methods some desirable properties of segmented images, often established according to human intuition about what conditions should be satisfied by an 'ideal segmentation', are measured by goodness parameters. The performance of the segmentation algorithms under study is judged by the values of goodness measures. These methods evaluate and rate different algorithms by simply computing some chosen goodness measure based on the segmented image, without requiring the a priori knowledge of the reference segmentation. Different types of goodness measures have been proposed; color uniformity [19] , entropy [14] , intra-region uniformity [2] , inter-region contrast [11, 15] , region shape [16] , etc., are some of the measures that can be found in the literature.. Although it may be tempting to evaluate a segmentation algorithm based on goodness measures, this strategy for comparison can quickly become unfair and, more seriously, inconsistent when evaluating algorithms that are tailored to different applications [3] .. By first defining what is going to be measured, we can always construct an algorithm that will outperform all the others under the selected evaluation measure. The algorithm would generate the implicit gold standard partition. This may invalidate any assessment at all, which is especially true when similar criteria are used to design the segmentation algorithms as well as to assess their performance-in fact, goodness measures have been used to design segmentation algorithms. Therefore, an independent, reliable measure of performance seems to require ground truth segmentation. The framework to be presented falls into this category. A fair judgment of any new image segmentation algorithm (any new algorithm, for that matter) needs a fair comparison metric. Acknowledging the image segmentation as a task of data clustering, we presented a general framework based on the minimum number of elements such that a certain condition is met. This guideline translates directly into a global optimization procedure, which we argue, as others before, leads to a most reasonable association between the ground-truth entities and the entities declared by algorithms. It was also shown that the optimization procedure can be naturally casted on the intersection-graph, a powerful tool to compute the resulting metrics. It is also worth stressing that, besides providing a value for the overall quality of the segmentation, these measures also offer an image error mask identifying the spatial localization of the errors, a key feature for some applications.. The framework was naturally extended to assess spatial segmentations of video. The use of consecutive pairs of frames al- lowed the detection of most of the typical errors introduced by any automatic segmenter of video. Nevertheless, the framework can be further extended for accommodating needs of specific domains. Labels were assumed non-semantic; if the value of the label itself is important, one may be interested in evaluating spatial segmenters of video that keep track of the meaningful labels. Such an evaluation system could be easily constructed on top of the proposed framework, by keeping track of any label swap to update the correspondence between ground truth labels and automatically derived labels. Another possible extension is the assessment of the temporal stability of errors. An error may vary its characteristics through time. In some applications, a non smooth change of any spatial error deteriorates the quality of the segmentation itself. The temporal artifact caused by a variation of the spatial error may be called jitter or flickering. This perturbation may be assessed by comparing the evolution of the reference sequence with actually segmented sequence. The 'error' difference between consecutive segmentations of the actually segmented sequence should evolve similarly to the 'error' difference between consecutive segmentations of the reference.

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


Logic programming in the context of multiparadigm programming: the Oz experience Oz is a multiparadigm language that supports logic programming as one of its major paradigms. A multiparadigm language is designed to support different programming paradigms (logic, functional, constraint, object-oriented, sequential, concurrent, etc.) with equal ease. This article has two goals: to give a tutorial of logic programming in Oz and to show how logic programming fits naturally into the wider context of multiparadigm programming. Our experience shows that there are two classes of problems, which we call algorithmic and search problems, for which logic programming can help formulate practical solutions. Algorithmic problems have known efficient algorithms. Search problems do not have known efficient algorithms but can be solved with search. The Oz support for logic programming targets these two problem classes specifically, using the concepts needed for each. This is in contrast to the Prolog approach, which targets both classes with one set of concepts, which results in less than optimal support for each class. We give examples that can be run interactively on the Mozart system, which implements Oz. To explain the essential difference between algorithmic and search programs, we define the Oz execution model. This model subsumes both concurrent logic programming (committed-choice-style) and search-based logic programming (Prolog-style). Furthermore, as consequences of its multiparadigm nature, the model supports new abilities such as first-class top levels, deep * This article is a much-extended version of the tutorial talk "Logic Programming in Oz withMozart" given at the International Conference on Logic Programming, Las Cruces, New Mexico, Nov. 1999. Some knowledge of traditional logic programming (with Prolog or concurrent logic languages) is assumed. guards, active objects, and sophisticated control of the search process. Instead of Horn clause syntax, Oz has a simple, fully compositional, higher-order syntax that accommodates the abilities of the language. We give a brief history of Oz that traces the development of its main ideas and we summarize the lessons learned from this work. Finally, we give many entry points into the Oz literature. In our experience, logic programming can help give practical solutions to many different problems. We have found that all these problems can be divided into two classes, each of which uses a totally different approach:. • Algorithmic problems. These are problems for which efficient algorithms are known. This includes parsing, rule-based expert systems, and transformations of complex symbolic data structures. For such problems, a logical specification of the algorithm is sometimes simpler than an imperative specification. In that case, deterministic logic programming or concurrent logic programming may be natural ways to express it. Logical specifications are not always simpler. Sometimes an imperative specification is better, e.g., for problems in which state updating is frequent. Many graph algorithms are of the latter type.. • Search problems. These are problems for which efficient algorithms are not known. This may be either because such algorithms are not possible in principle or because such algorithms have not been made explicit. We cite, e.g., NP-complete problems (Garey & Johnson, 1979) or problems with complex specifications whose algorithms are difficult for this reason. Some examples of search problems are optimization problems (planning, scheduling, configuration), natural language parsing, and theorem proving. These kinds of problems can be solved by doing search, i.e., with nondeterministic logic programming. But search is a dangerous tool. If used naively, it does not scale up to real applications. This is because the size of the search space grows exponentially with the problem size. For a real application, all possible effort must be made to reduce the need for search: use strong (global) constraints, concurrency for cooperative constraints, heuristics for the search tree, etc. (Schulte & Smolka, 1999) . For problems with complex specifications, using sufficiently strong constraints sometimes results in a polynomial-time algorithm (Koller & Niehren, 2000) .. For this paper, we consider logic programming as programming with executable specifications written in a simple logic such as first-order predicate calculus. The Oz support for logic programming is targeted specifically towards the two classes of algorithmic problems and search problems. The first part of this article (Sections 2-6) shows how to write logic programs in Oz for these problems. Section 2 introduces deterministic logic programming, which targets algorithmic problems. It is the most simple and direct way of doing logic programming in Oz. Section 3 shows how to do nondeterministic logic programming in the Prolog style. This targets neither algorithmic nor search problems, and is therefore only of pedagogical interest. Section 4 shows how to do concurrent logic programming in the classical tradition. This targets more algorithmic problems. Section 5 extends Section 4 with state. In our experience, state is essential for practical concurrent logic programming. Section 6 expands on Section 3 to show how search can be made practical. The second part of this article (Sections 7-9) focuses on the essential difference between the techniques used to solve algorithmic and search problems. This leads to the wider context of multiparadigm programming. Section 7 introduces the Oz execution model, which has a strict functional core and extensions for concurrency, lazy evaluation, exception handling, security, state, and search. The section explains how these extensions can be used in different combinations to provide different programming paradigms. In particular, Section 7.4 explains the abstraction of computation spaces, which is the main tool for doing search in Oz. Spaces make possible a deep synthesis of concurrent and constraint logic programming. Section 8 gives an overview of other research in multiparadigm programming and a short history of Oz. Finally, Section 9 summarizes the lessons we have learned in the Oz project on how to do practical logic programming and multiparadigm programming.. This article gives an informal (yet precise) introduction targeted towards Prolog programmers. A more complete presentation of logic programming in Oz and its relationship to other programming concepts is given in the textbook ( Van Roy & Haridi, 2002) . We first give a brief overview of research in the area of multiparadigm programming. We then give a short history of Oz.

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


A Geometric Interpretation of Fading in Wireless Networks: Theory and Applications In wireless networks with random node distribution, the underlying point process model and the channel fading process are usually considered separately. A unified framework is introduced that permits the geometric characterization of fading by incorporating the fading process into the point process model. Concretely, assuming nodes are distributed in a stationary Poisson point process in d , the properties of the point processes that describe the path loss with fading are analyzed. The main applications are single-hop connectivity and broadcasting.

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


Feature Fusion for Basic Behavior Unit Segmentation from Video Sequences It has become increasingly popular to study animal behaviors with the assistance of video recordings. An automated video processing and behavior analysis system is desired to replace the traditional manual annotation. We propose a framework for automatic video based behavior analysis systems, which consists of four major modules: behavior modeling, feature extraction from video sequences, basic behavior unit (BBU) discovery and complex behavior recognition. BBU discovery is performed based on features extracted from video sequences, hence the fusion of multiple dimensional features is very important. In this paper, we explore the application of feature fusion techniques to BBU discovery with one and multiple cameras. We applied the vector fusion (SBP) method, a multi-variate vector visualization technique, in fusing the features obtained from a single camera. This technique reduces the multiple dimensional data into two dimensional (SBP) space, and the spatial and temporal analysis in SBP space can help discover the underlying data groups. Then we present a simple feature fusion technique for BBU discovery from multiple cameras with the affinity graph method. Finally, we present encouraging results on a physical system and a synthetic mouse-in-a-cage scenario from one, two, and three cameras. The feature fusion methods in this paper are simple yet effective. It has become an increasingly important research area to automatically analyze object behaviors from visually (e.g., motion) captured data or video recordings. The major tasks are automatically detect and track objects from video sequences and analyzing its high level activities or behaviors. Humans and vehicles have been mostly the focus of the visual surveillance and behavior understanding research [1] , [2] , [3] , [4] for security purposes, i.e., access control in certain area, anomaly detection in crowded mass transportation area, etc.. In areas of biology, pharmacology, toxicology, entomology and animal welfare, video recordings are popularly used to analyze the behaviors of animals (e.g. lab mice, rodents, poultry, wild animals, etc.) The traditional human annotation approach is time consuming and results may vary from one observer to another. Hence the automatic animal behavior analysis from visual data is drawing more and more attention in both the research and industrial community [5] , [6] .. In the area of visual robot control, it is also desired for robots to automatically learn and recognize behaviors from motion capture or visual data [7] , [8] , [9] , which would enable the intelligent robots to respond according to the visual information captured by cameras.. Among all the efforts made in an automated behavior analysis system, the basic behavior unit (BBU) classification (or segmentation) is one important task [10] . Usually the sequences of visual data from images need first to be grouped into BBUs [11] , or primitive (atomic) behaviors [7] , and then complex behaviors are analyzed based upon the relationship between the BBUs and context. Prior to the BBU segmentation step, spatiotemporal features are usually extracted. In the literature, interest points, shape properties of the detected object blobs, contours, or features derived thereby are used to perform BBU classification. Feature extraction itself is an important task.. In the literature, researchers has been trying to solve the BBU classification and feature extraction tasks separately. In this paper, we take a integrated approach and propose a framework for such an automatic behavior analysis system. We first present the framework, and then focus on investigating feature fusion techniques in BBU discovery: we will present the exploration of the vector fusion method [12] in feature dimension reduction, and the fusion of features from multiple cameras using the affinity graph method.. Our research is motivated by the need of a professor in medicine, who is interested in the automatic video analysis of behavior changes before and after injecting certain medicine to the lab mouse, as shown in figure 1 . The behaviors interested including resting, eating, exploring, and mostly importantly, grooming. In this paper, we use behaviors of mouse-in-cage scenarios for our experiments and analysis. We propose a framework for video based animal behavior analysis, and concentrate on feature fusion methods for BBU discovery. We have explored the vector fusion method for its application in object basic behavior unit segmentation in a temporal sequence, and presented results on a physical system and a synthetic mouse-in-a-cage scenario. The vector fusion method reduces multiple dimensional data into the 2D SBP space, and the spatial and temporal analysis in SBP space provides a good distinction and interpretation for the bouncing ball example and the analytical data from the synthetic video simulation upon certain selected features.. Our experiments show that several factors influences the effectiveness of the vector fusion method in BBU segmentation. First, proper features with enough BBU distinguishing power needs to be selected, just as in other BBU segmentation methods. Second, the weights of each feature element in the multipledimensional feature space play an important role, hence, each feature element needs to be properly normalized to account for the different value range (hence different weight) for each feature element, and the distinguishing power of the features. The result of the temporal analysis in SBP space suggests it can be very powerful for BBUs consisting periodic motion [28] , and may be potentially a good approach for motion capture data analysis (where joint angles can be easily calculated). Its great simplicity (reducing multi-dimensional feature space to the 2D SBP space) is a great advantage over the more complex methods.. We applied the affinity graph method and classification tree approach to perform BBU discovery using features extracted from single, stereo and multiple cameras. The simple feature concatenation fusing method is shown to be effective in the experimental results on synthetic mouse video. The results are encouraging and promising.. Meanwhile, we have noticed that in applying the affinity method in BBU discovery, optimal feature (spatio-temporal features) and parameter (size of subsequence, and number of frames to skip) selection is critical for the successful behavior clustering.. Mutual information feature selection and other feature ranking algorithm could be explored in finding the distinguishing power of the features for BBU discovery. In addition, a probabilistic approach to BBU discovery on top of these methods would be an interesting future research, as well as the study for connecting both SBP and affinity in BBU grouping.. Finally, we are going to apply this method to the real mouse video. Our next step will be conducting complex video animal behavior analysis and uncovering underlying behavior models. For multiple camera cases, where the cameras shall be deployed to get optimal information [29] , and how the more complicated information fusion techniques can be applied here will also need to be studied in the future. In the visual surveillance literature, most of the existing techniques extract basic behaviors (or actions) directly based upon one or more features extracted (trajectory, motion, posture, etc.) from the detection and tracking results. Pattern recognition techniques (template matching, clustering analysis) are used to classify the video sequence into actions or behavior units, as discussed in the survey papers [1] , [2] , [3] , [4] . These methods are effective in their specific applications. The idea is to utilize all the available distinguishing features to perform classification.. Recently, new approaches based on data (or feature) variance or similarity analysis have been developed for discovering BBUs: PCA-related techniques [7] , [9] , and affinity graph-based techniques [13] , [11] , [14] . The former capture the variance in a dataset in terms of principle components, and the latter utilize the degree of similarity between the data elements. The commonality of these two approaches lies in the fact that, first a covariance matrix (for PCA) or affinity matrix (for affinity method) is constructed, then Singular Value Decomposition (SVD) is performed to derive eigenvalues and eigenvectors. Segmentation is performed upon the eigenvector corresponding to the largest eigenvalue.. PCA-related techniques. Jenkins [7] employs a spatiotemporal nonlinear dimension reduction technique (PCA-based) to derive action and behavior primitives from motion capture data, for modularizing humanoid robot control. They first build spatiotemporal neighborhoods, then compute a matrix D of all pairs' shortest distance paths, and finally perform PCA on the matrix D. Barbic et al. [9] propose three PCA-based approaches which cut on where the intrinsic dimensionality increases or the observed distribution of poses changes, to segment motion into distinct high-level behaviors (such as walking, running, punching, etc.).. Affinity graph method. The affinity graph method has mostly been applied in image segmentation, as summarized in [15] . Recently, this method has been applied to event detection in video [13] , [14] . Though not exactly the same approach, the concept of similarity matrix for classification is applied in gait recognition [16] and action recognition [17] . Different affinity measures have been proposed to construct the affinity matrix. In image segmentation, distance, intensity, color, texture and motion have been used [18] . In video-based event detection, as in [13] , a statistical distance measure between video sequences is proposed based on spatiotemporal intensity gradients at multiple temporal scales. [14] uses a mixture of object-based and frame-based features, which consist of histograms of aspect ratio, slant, orientation, speed, color, size, etc., as generated by the video tracker. Multiple affinity matrices are constructed based on different features, and a weighted sum approach is utilized for constructing the final affinity matrix.. The most closely related methods to our work are [13] and [14] . [13] constructs an affinity matrix from temporal subsequences using a single feature, while [14] constructs the affinity matrices for each frame based upon weighted multiple features.. We are particularly interested in discovering animal behaviors from video sequences. We propose a framework for discovering basic behaviors from temporal sequences based on multiple spatiotemporal features. In our approach, we combine the advantages of the approaches from [13] and [14] : 1) We use a classification tree approach with the affinity graph method. 2) We construct the affinity matrix on a subsequence of the frame features (multiple-temporal scale), instead of on one frame. Thus we can encode the time trend feature into the problem, and capture the character of the gradual temporal changes. 3) We apply the affinity graph technique to multiple cameras. Multiple cameras have been used in human posture classification [19] , [20] , where either multiple 2D information fusion or reconstructed 3D information is used. Approaches other than the affinity graph method are used. In our work, we use the multiple camera image information in the simplest way to demonstrate the effectiveness of multiple cameras.. In most of the BBU segmentation methods, the feature data usually have a large dimension, which usually makes the algorithms computationally expensive. Hence feature dimension reduction is often applied before applying BBU segmentation algorithms. The vector fusion method [12, 21] , is inherently one such technique: it reduces an arbitrarily large dimension to a two dimensional space, which can help discovering the underlying structure of the data. This method was originally proposed as an aid for visualizing the structure of multiple dimensional data, and has also been applied in characterizing and measuring data. Here we propose to explore its applicability in grouping behavioral data.

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