Building Development Monitoring in Multitemporal Remotely Sensed Image Pairs with Stochastic Birth-Death Dynamics Abstract-In this paper, we introduce a new probabilistic method which integrates building extraction with change detection in remotely sensed image pairs. A global optimization process attempts to find the optimal configuration of buildings, considering the observed data, prior knowledge, and interactions between the neighboring building parts. We present methodological contributions in three key issues: 1) We implement a novel object-change modeling approach based on Multitemporal Marked Point Processes, which simultaneously exploits low-level change information between the time layers and object-level building description to recognize and separate changed and unaltered buildings. 2) To answer the challenges of data heterogeneity in aerial and satellite image repositories, we construct a flexible hierarchical framework which can create various building appearance models from different elementary featurebased modules. 3) To simultaneously ensure the convergence, optimality, and computation complexity constraints raised by the increased data quantity, we adopt the quick Multiple Birth and Death optimization technique for change detection purposes, and propose a novel nonuniform stochastic object birth process which generates relevant objects with higher probability based on low-level image features. F OLLOWING the evolution of built-up regions is a key issue of aerial and satellite image analysis. Although the topic has been extensively studied since the 1980s, it has had to continuously face the challenges of the quickly evolving quality and quantity of remotely sensed data, the richness of different building appearances, the data heterogeneity in the available image repositories, and the various requirements of new application areas. We have proposed a multitemporal Marked Point Process framework for building extraction and change monitoring in remotely sensed image pairs taken with significant time differences. The method incorporates object recognition and low-level change information in a joint probabilistic approach. A global optimization process attempts to find the optimal configuration of buildings, considering the observed data, prior knowledge, and interactions between the neighboring building parts. The accuracy is ensured by a Bayesian object model verification; meanwhile, the computational cost is significantly decreased by a nonuniform stochastic object birth process, which proposes relevant objects with higher probability based on low-level image features. Her current research interests are in image processing using probabilistic models and variational methods. She also works on parameter estimation and optimization techniques. She is a fellow of the IEEE.. . For more information on this or any other computing topic, please visit our Digital Library at www.computer.org/publications/dlib. The goal of this section is to validate the three key developments of the paper and compare them to the state of the art: 1) the proposed multiple feature-based building appearance model, 2) the joint object-change modeling framework, and 3) the nonhomogeneous object birth process based on low-level features.. We have evaluated our method using eight significantly different data sets whose main properties are summarized in Table 1 . Four image collections contain multitemporal aerial or satellite photos from the monitored regions, which enables testing both the building extraction and the change detection abilities of the proposed mMPP model. The remaining four data sets contain stand-alone satellite images acquired from Google Earth, which are only exploited in the evaluation of the building appearance model (Section 7.1). To guarantee the heterogeneity of the test sets, we have chosen completely different geographical regions as listed in Table 1 . We collected samples from densely populated suburban areas, and built a manually annotated database for validation. For parameter settings, we have chosen in each data set 2-8 buildings (% 5 percent) as training data, while the remaining Ground Truth labels have only been used to validate the detection results. Qualitative results are shown in Figs. 17, 18, 20, 21, 25 , and 26.. We perform quantitative evaluation both at object and pixel levels. On one hand, we measure how many buildings are recognized or classified incorrectly in the different test sets, by counting the missing and falsely detected objects (MO and FO, respectively), and the missing and false change alarms (MC, FC). On the other hand, we also investigate how accurate the extracted object outlines are: We compare the resulting building footprint masks to the Ground Truth mask, and calculate the Precision (Pr) and Recall (Rc) values of the pixel-level detection. Finally, the F-score (harmonic mean of Pr and Rc) can be given both at object and at pixel levels.

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


An

ensemble

uncertainty

aware

measure

for

directed

hill

climbing

ensemble

pruning

Abstract

This

paper

proposes

a

new

measure

for

ensemble

pruning

via

directed

hill

climbing,

dubbed

Uncertainty

Weighted

Accuracy

(UWA),

which

takes

into

account

the

uncertainty

of

the

decision

of

the

current

ensemble.

Empirical

results

on

data

sets

show

that

using

the

proposed

measure

to

prune

a

heterogeneous

ensemble

leads

to

significantly

better

accuracy

results

compared

to

state-of-the-art

measures

and

other

baseline

methods,

while

keeping

only

a

small

fraction

of

the

original

models.

Besides

the

evaluation

measure,

the

paper

also

studies

two

other

parameters

of

directed

hill

climbing

ensemble

pruning

methods,

the

search

direction

and

the

evaluation

dataset,

with

interesting

conclusions

on

appropriate

values.

This

paper

presented

a

new

measure

for

DHCEP,

called

Uncertainty

Weighted

Accuracy

(UWA),

which

takes

into

account

the

uncertainty

of

the

decisions

of

the

current

ensemble.

We

compared

UWA

against

state-of-the-art

measures

using

different

values

for

the

parameters

of

search

direction

and

evaluation

dataset

on

ensembles

of

heterogeneous

models.

The

empirical

comparison

was

carried

out

on

datasets

and

included

additional

baseline

ensemble

pruning

methods.

The

results

show

that

the

proposed

measure

leads

to

significantly

better

accuracy

results

compared

to

its

rivals

and

it

also

manages

to

reduce

substantially

the

size

of

the

original

ensemble

and

thus

to

minimize

the

computational

complexity..

Several

interesting

conclusions

came

up.

To

begin

with,

the

evaluation

dataset

parameter

plays

an

important

role

on

the

performance

of

the

DHCEP

methods.

The

use

of

a

separate

set

leads

to

significantly

better

results

than

using

all

the

available

data.

Also,

the

direction

of

search

is

another

important

parameter

that

influences

the

performance

of

DHCEP

methods.

The

results

showed

that

the

forward

direction

helps

to

significantly

improve

the

accuracy..

One

interesting

future

work

direction

concerns

the

composition

of

the

pool

of

models

that

constitute

the

initial

ensemble.

It

is

interesting

to

investigate

which

parameters

of

the

algorithms

have

proved

effective

or

not

(for

example

a

neural

network

with

hidden

nodes)

and

to

use

this

information

in

order

to

substitute

the

specific

models

with

other

more

effective

ones.

Another

related

interesting

direction

concerns

the

development

of

a

method

that

can

train

and

add

models

in

the

ensemble

incrementally

in

an

active

learning

fashion.

In

other

words

to

grow

the

ensemble

dynamically

by

actively

selecting

the

next

most

appropriate

model

to

train

and/or

perhaps

dynamically

removing

inappropriate

models

that

were

previously

added.

This

will

save

the

computational

costs

of

training

a

large

number

of

models

from

the

beginning.

This

section

presents

information

about

the

datasets

that

were

used

for

conducting

the

experiments,

the

classifiers

that

comprise

the

initial

ensemble,

the

ensemble

pruning

methods

that

participate

in

the

comparison,

as

well

as

the

experimentation

methodology

that

was

followed.

The

source

code

we

developed

for

conducting

the

experiments

along

with

a

package

for

performing

statistical

tests

on

multiple

datasets,

can

be

found

at

the

following

URL:

Initially,

each

dataset

is

split

into

three

disjunctive

parts:

D

D

and

D

consisting

of

and

respectively.

In

the

case

where

a

separate

validation

set

is

used

for

pruning,

D

is

used

for

training

the

models

and

D

for

performing

the

pruning

procedure.

In

the

other

case,

D

D

is

used

for

both

training

and

pruning.

D

is

always

used

solely

for

testing

the

methods.

The

experiment

described

in

this

section

is

performed

times

for

each

dataset

using

a

different

randomized

ordering

of

its

examples.

All

reported

results

are

averages

over

these

repetitions.

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


Differential FEC and ARQ for Radio Link Protocols Abstract-To bring TCP-based services to the mobile devices in a cellular network, it is necessary that TCP be extended over the wireless link. However, the performance of TCP severely degrades in a wireless medium. Hence, radio link protocols (RLPs) are used as an interface between TCP and the physical medium. RLPs fragment TCP segments into frames and use robust error correcting codes and fast retransmission schemes to shield the channel related losses from TCP, thus preventing TCP throughput degradation. In this paper, we show the limitations of the existing RLPs, which do not differentiate the frames generated from the same TCP segment. We claim that if selective frames are made more robust to transmission failures, then the performance of RLP and, hence, TCP can be improved. We identify such decisive frames and categorize them as crucial and noncrucial. Our claim is based on the fact that initial frames can afford a few trials of retransmissions, whereas the later ones cannot. We treat the frames differentially with respect to forward error correcting (FEC) coding and automatic repeat request (ARQ) schemes. We consider specific cases of FEC and ARQ strategies and show the qualitative difference in the performance of the RLP through analysis and simulations. The gain in the performance is more prominent when both FEC and ARQ (hybrid-ARQ) are used. The increase in TCP throughput with the proposed RLP is also demonstrated. T HE explosive growth of the Internet and the growth in the cellular customer base are fueling demand for wireless data services-with increased capacity, high data rates, and a variety of services. To support end-to-end services to wireless and mobile hosts in current and future generation cellular systems, it is necessary that transport layer protocols such as TCP be supported over the wireless links. This is because most of the networks are IP based and TCP still remains the most dominant internetworking protocol providing reliable end-to-end transmission [8] . However, the design of TCP has been done in such a way that it performs well in wireline networks where the channel error rates are extremely low. Due to the lossy nature of the wireless channels, there are frequent packet losses which are misinterpreted by TCP as congestion related losses and it unnecessarily reduces its transmission window size, resulting in reduced throughput. Several schemes have been proposed to alleviate the effects of noncongestion related losses over wireless links [2] , [3] , [5] , [14] . These schemes vary widely in their implementations and depend on the nature of the wireless network, i.e., local area or wide area.. Radio link protocol (RLP) [10] is one such mechanism that is particularly meant for cellular networks and has been incorporated into the second and third (2G/3G) systems [17] . Next, we briefly describe how RLP works and some of its features that make it particularly suitable for 3G systems. This paper demonstrates how the performance of radio link protocols can be improved if the RLP frames are treated differentially. We categorize the frames into crucial and noncrucial and find their ratio as a function of segment size, round-trip time and frame error rate. Differential FEC and ARQ are applied based on the relative position of the frames. We considered both parallel and sequential transmission of the original and retransmit frames and used specific FEC and ARQ schemes to show the qualitative gain through analysis and simulations. Our results signify that, if the performance of the differential RLP is known for various FEC and ARQ schemes under different channel conditions, then the RLP can choose the appropriate hybrid mechanism which will sustain the promised level of reliability expected from the applications to be supported. The performance enhancement at the RLP helps improve the TCP performance as manifested from the results obtained for TCP throughput. Samrat Ganguly received the BSc degree in physics from the Indian Institute of Technology, Kharagpur, India, in 1994, the ME degree in computer science from the Indian Institute Science, Bangalore, India, in 1998, and the PhD degree in computer science from Rutgers University, Piscataway, New Jersey, in 2003. Since 2001, he has been a research staff member at NEC Laboratories America, Princeton, New Jersey. His research interests include distributed algorithm design and performance optimization in wireless, overlay, and content delivery networks.. . For more information on this or any other computing topic, please visit our Digital Library at www.computer.org/publications/dlib.

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


Quantum complexity of parametric integration We study parametric integration of functions from the classWe analyze the convergence rate of parametric integration in this model and show that it is always faster than the optimal deterministic rate and in some cases faster than the rate of optimal randomized classical algorithms. Summation and integration are the most famous numerical problems that achieved a speedup in the quantum model of computation, compared to the optimal convergence rates of deterministic and randomized algorithms in the classical case.. In this paper we study the problem of parametric integration, where the integral depends on a parameter. Therefore, the solution is now a function, so the problem carries features of both integration and approximation.. We will consider the problem from the point of view of complexity theory and provide an analysis for the class of r-times continuously differentiable functions. For this class we determine the order of the minimal error (up to a logarithmic gap) by deriving matching upper and lower complexity bounds.. In section 2 we present the required notions from quantum informationbased complexity theory, recall related previous results and formulate the main result. Section 3 is devoted to the proof of the upper bound. In Section 4 we prove the lower bound, and in the final Section 5 we give some comments on the results.

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


DistEdit: a distributed toolkit for supporting multiple group editors The purpose of our project is to provide toolkits for building applications that support collaboration between people in distributed environments. In this paper, we describe one such toolkit, called DistEdit, that can be used to build interactive group editors for distributed environments. This toolkit has the ability to support different editors simultaneously and provides a high degree of fault-tolerance against machine crashes. To evaluate the toolkit, we modified two editors to make use of the toolkit. The resulting editors allow users to take turns at making changes while other users observe the changes as they occur. We give an evaluation of the toolkit based on the development and use of these editors. Computers are now commonplace in work environments and are influencing the way people interact. Examples of computer-supported interaction mechanisms include electronic mail, newsgroups, and distributed file systems. These have opened up new ways to interact, but all support only non-interactive styles of communication. There are also "talk" programs that are more interactive but are generally restricted to two users and allow only very simple forms of interaction, such as the exchange of messages in different windows, In recent years, there has been a growing interest in providing collaboration tools to support more closely coupled interactions among a group of people [Abde88, Halo89, Elwa89, Stef87] . Our focus in this paper is on one type of collaboration tools, group editors, that allow several people to jointly edit a shared document in a distributed environment.. One difficulty in building collaboration systems is that they require solutions to problems in distributed concurrency control, fault-tolerance, user-interfaces, psychology, human factors, and software design [Elli88b] . Our goal is to remove most of the concerns of distributed concurrency control and fault tolerance by providing toolkits which can be used to build collaboration tools. This paper describes a toolkit, called DistEdit, which provides a set of primitives that can be used to add collaboration support to editors without having to deal with distributed systems issues, such as communication protocols and fault-tolerance. The primitives provided by the toolkit are generic enough to support editors with different user interfaces. We have tested our approach by modifying two editors, MicroEmacs and GNU Emacs, to make use of DistEdit. The resulting group editors allow users to take turns at making changes while other users observe the changes concurrently. This paper describes the requirements considered, related work, the operation of the test system, the design of the toolkit, and the modifications needed to adapt an editor to group editing using the toolkit. We give the results from our use of the toolkit and discuss tradeoffs that went into some of the design decisions. Finally, we discuss some issues for future work. A number of extensions to the DistRdit toolkit are being explored, including aliowing concurrent updates, support for more complex documents, and naming and security issues.. The most obvious extension of DistEdit is to allow multiple users to concurrently update a file. Such an extension requires solving several problems. One problem is maintaining consistency between all the users' buffers. If one user inserts a word at the beginning of the document at the same time as another user, the system must at least ensure that both users view the same resulting text. Resolving conflicting updates is another major challenge. For instance, one user may insert a character in the middle of a line of text which another user is attempting to delete; such conflicting operations must be reconciled.. One approach to solving concurrency problems would be to support locking of regions. A user can only make updates if he hold locks on the region of the update. For instance, if one user were modifying a line, that line will could be locked, preventing another user from deleting it. Selecting policy for locking will require experimentation with the user interface.. Another approach to solving the concurrency problems would be not to use locks but to carry out the updates in any globally consistent order. Since the users can see the results of changes immediately, they will be in a position to correct the conflict by talking to each other and to agreeing to a more social protocol.. Allowing concurrent updates also could have an impact on performance if the updates from different sites have to be executed in the same sequence on all the sites. ISIS provides atomic broadcast protocols that guarantee such sequencing. However, if the performance of ISIS protocols is not satisfactory for the application of concurrent group editing, the design of efficient application-specific protocols may be required. For a discussion of some of the issues in the design of special protocols for group editing, see [Elli89] .. Another extension being explored is the application of DistEdit to documents more complex than simple text, such as word processing documents. Such documents include formatting such as fonts, margins, and spacing, which require a more complex model of a document than that currently used by DistEdit.. A final area of exploration is how to deal with naming and security of documents. Keeping group documents consistent across heterogeneous systems requires reconciling various naming mechanisms. Keeping documents consistent after a group-editing session CSCW 90 Proceedings October 1990. is also desirable. Finally, since the document is being shared across a network, security must be considered to prevent unauthorized users from reading or interfering with the group's work. We successfully converted the MicroEmacs and GNU Emacs editors to distributed group editors using the DistEdit toolkit. Both editors can be used in the same group session. GROVE [Ellis81 and ShrEdit [Cogn90] are examples of editors that are especially designed to support group editing. DistEdit, unlike these systems, is not an editor but a toolkit that can be used to adapt single-user editors to the task of group editing. Using the DistEdit toolkit, it is possible to use different editors, which could possibly be running on different types of hardware, in a single group session. For instance, a single group session could potentially allow one user to use Emacs, another to use vi (both running on terminals). , and yet another to use xedit (requiring a workstation running X), with only minor modifications required to the code of each editor for using them in a group editing session.. Using DistEdit with different editors as front-ends is similar in some ways to the configurable user interfaces described by Lantz in [Lant86]. Lantz proposes creating customizable user interfaces by making the user interface a separate, easily replaceable module, which interfaces with a single back-end. Similarly, different editors act as a replaceable front-ends for DistEdit. However, the modular front-ends in [Lam861 are meant to be fairly small and easy to develop. DistEdit, in contrast, is actually much smaller than the front-ends it supports,. The design of DistEdit toolkit provides a very high degree of fault-tolerance. A simple way to design group editors, and one which has been used in many editors and collaboration tools, is to use the client-server model. There is one server that is responsible for maintaining the state of the editor buffer. Mutual consistency between users' views can then be ensured by requiring all the editing commands to go through the shared server. This design, although simple, is vulnerable to a server crash. Furthermore, even if only one person is editing a file, the updates still have to go through the server, making the editing slow. In contrast DistEdit maintains a copy of the state of the editor buffer for each user. Reliable atomic broadcast protocols [Birm87] are used to ensure mutual consistency between the buffers, even in presence of failures.. A different approach to a groupware toolkit can be seen in LIZA [Gibb881. LIZA provides a high-level collection of tools for rapid groupware prototyping. These highlevel tools provide support for sending messages, indicating moods, editing collaboratively, giving slide shows, and monitoring the group. With this framework and basic set of tools, LIZA is primarily intended to test new ideas in collaboration quickly and easily. D&Edit is a much lower-level, application-specific toolkit. It is designed to explore in-depth the possibilities of group editing in a setting already familiar to users. Operation of the MicroEmacs editor changes very little from its normal use without the DistEdit system. A user starts the editor by giving the program name, followed by the name of a file to edit. As the editor runs for the first user, everything works just as it normally would; the only ndticeable difference is an indicator on a status line showing that this user is the 'master' (as explained below) (see Figure 1 ).. When an additional user runs the program for the same file name, the operation differs considerably. The text loaded into the edit buffer will be that of the first user, complete with all the changes the first user has made. The first user is the 'master', with complete editing capabilities; the second user is an 'observer', with no editing capabilities. As an observer, the second user will see every change and cursor movement made by the master: the observer's cursor is in 'lock-step' with the master's cursor at this point.. The observer cannot perform any operations which change the text; if attempted, such operations simply have no effect. He can, however, save files, change the window size, and issue any editor commands which do not alter the text.. Should an observer desire to move his cursor independently, he may invoke the 'lockswitch' command (bound to a key sequence) which frees his cursor from dependence upon the master's cursor. In this 'free-cursor' mode, the observer may move the cursor anywhere he wishes, but he still cannot make changes; all changes the master makes are stiI1 simultaneousIy updated (and visible if the observer's cursor is in proximity to the change). The lock-switch and free-cursor modes may be toggled at will by an observer.. At all times, at most one user is the master; all others are observers. The master may, at any time, relinquish control by invoking the 'control-switch' command. The status line of all editors is updated to indicate that there is no master. Once there is no master, any observer may take control and become master by using the control-switch command; the first user to issue a control-switch becomes the master. The status lines are then updated to indicate master/observer status, and the new master operates as described above. When there is no master, no user can perform any changes. Presumably, a transfer of control is initiated by a conversation on an outside line, such as a telephone, or perhaps an on-line talk session.. Any number of users may participate in an edit session. Users may join and leave a session at any time without affecting the other users. A failure on one user's machine simply results in that user leaving the session. Should the master leave the session or experience a failure, the other users will observe a no-master status and be allowed to take control. The text being edited can only be lost if all users leave the session and none of them has saved it locally.

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


Towards a DSAL for object layout in virtual machines High-level language virtual machine implementations offer a challenging domain for modularization, not only because they are inherently complex, but also because efficiency is not likely to be traded for modularity. The central data structure used throughout the VM, the object layout, cannot be succinctly modularised by current aspect technology, as provisions for static crosscutting are not fine-grained enough. This position paper motivates the need for a declarative, domain-specific language for handling the tangled object layout concern. Based on observations in real-world VM implementations, we propose such a language, D4OL. It combines a two-level layout mapping, constraints and an engine to divide responsibilities between VM component and VM developers. We consider a domain-specific language like D4OL a necessary complement to behavioural aspect languages in order to modularize VM implementations. High-level language virtual machine (VM) implementations [11] are inherently complex systems, as they provide a wide range of highly interacting abstractions to applications running on top of them. For example, a Java VM provides both automatic memory management and integrated support for multithreading and synchronization such that the Java programmer does not have to take care of possible interactions between them.. The resulting high complexity in VMs is a consequence of the high degree of crosscutting interactions between the different parts of the VM. Tackling these crosscutting concerns by using aspectoriented programming in the VM is a relatively recent idea, and so is the idea to define a domain-specific aspect language for VM implementations [2, 6] . In this position paper we focus on a particular concern of a virtual machine: the object layout. This is crucial to the VM as it serves as the foundation on which other functionality is built, such as the execution system (interpreter or JIT compiler), auPermission 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. Workshop DSAL '08 April 1st, Brussels, Belgium. tomatic memory management (garbage collection), multithreading facilities, etc. Note that this does not only apply to the implementation of object-oriented programming languages; arrays or structures can also be considered as "objects".. We identify three object layout characteristics which, taken together, prevent existing approaches from modularising the object layout. Firstly, the object layout is a highly tangled concern, because it combines contributions of several subsystems of the VM. Secondly, the object layout is a very structural concern (as opposed to behavioural), as it simply describes how the concepts provided by the VM are mapped onto the memory of the host machine. Thirdly, in order to make the VM memory efficient, there are a lot of optimizations that can make the object layout implementation much more complicated than its conceptual functionality. We further discuss these characteristics in Section 2.. From these three problems, we distill three requirements (Section 3) for a domain-specific language for object layout and the corresponding interactions between the different subsystems. D4OL, a DSAL for object layout, (Section 4) is an incarnation of these requirements. It enforces distinct roles for the people involved with the VM implementation and provides (semi-)automatic support to refine the layout specification. Section 5 discusses our approach, while we summarize our contributions in Section 6. It is clear that the object layout plays a central role in a VM implementation. Based on performance criteria, an implementation approach where each subsystem keeps track of its own contributions might be undesirable; however, an implementation approach that combines all contributions yields a highly complex and monolithic object layout implementation that is difficult to program and to evolve because of structural concern tangling. In this position paper we motivate the need for a declarative and domain-specific language for object layout in VMs, as this is a tangled and structural concern. The language should enable modular reasoning about the object layout for the different subsystems of the VM without sacrificing performance. We present an architecture where a VM independent layer, a VM specific layer and a set of constraints allow the (semi-)automatic generation of the optimal object layout implementation which fulfills the object layout interfaces for all VM subsystems. Is This AOP? Aspect-oriented programming [8] is widely equated with its pointcut-and-advice (PA) flavour [10] . We deliberately adopt the wider notion that AOP is about modularizing crosscutting concerns. We are applying aspect-oriented abstraction to the domain of VM implementations, or, rather to its sub-domain of object model implementations.. The work described herein is but a small part of a definitely more large-scale effort with the goal of supporting modularization in VM implementations in general [2, 6, 5] . At various levels of abstractions, various AOP mechanisms are employed.

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


Optimized color gamuts for tiled displays We consider the problem of finding a large color space that can be generated by all units in multi-projector tiled display systems. Viewing the problem geometrically as one of finding a large parallelepiped within the intersection of multiple parallelepipeds, and using colorimetric principles to define a volume-based objective function for comparing feasible solutions, we develop an algorithm for finding the optimal gamut in time O(n 3 ), where n denotes the number of projectors in the system. We also discuss more efficient quasiconvex programming algorithms for alternative objective functions based on maximizing the quality of the color space extrema. Demand for increased image resolution has grown explosively in recent years, both in imaging devices such as cameras and in displays for those images. In particular, collaborative workspaces require large display walls that can accomodate both presentation-sized graphics and higher resolution images for up-close viewing. In order to satisfy this demand for display resolution, researchers and corporations have resorted to tiled displays, in which multiple display units (typically rear projection systems) each cover a small portion of the overall display area [11, 13, 19] . However, achieving a seamless appearance with such a system poses formidable technical challenges, involving careful geometric alignment of the individual display units, feathering or masking seams between units, correction for distortion, vignetting, and other defects of individual units' projection systems, and matching of the color characteristics among the different units in the system.. In this paper we address one of these challenges: finding an appropriate color gamut, achievable by all projectors in the system, so that scenes can be rendered on the system without distracting color shifts on the boundaries between different projectors' output. This problem was previously considered by Stone [22] , who described a non-automated procedure for finding a large common color gamut for tiled displays. Majumder et al. [14] also studied color matching problems in tiled displays, however their paper addresses only the related problem of mapping a suitable device-independent gamut into individual projectors' color spaces, and does not discuss how to find such a gamut. We show how to formalize this challenge as a computational geometry optimization problem, and describe efficient algorithms for solving various formulations of this problem.

O B I O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 social game engagement on facebook through enhanced socio-contextual information In this paper we describe the results of a controlled study of a social game, Magpies, which was built on the Facebook Online Social Network (OSN) and enhanced with contextual social information in the form of a variety of social network indices. Through comparison with a concurrent control trial using an identical game without the enhanced social information, it was shown that the additional contextual data increased the frequency of social activity between players engaged in the game. Despite this increase in activity, there was little increase in growth of the player-base when compared to the control condition. These findings corroborate previous work that showed how socio-contextual enhancement can increase performance on task-driven games, whilst also suggesting that it can increase activity and engagement when provided as context for non task-driven game environments. The notion of Social Presence has long been a popular topic for research in the field of HCI [1] . Researchers in Computer-mediated communication (CMC) have conducted a great deal of work on replicating typical non-verbal aspects of face-to-face communication in computer mediated social environments and also introducing new non-verbal cues in a manner that is respectful of the context in which these interactions take place [3] . One of the major strategies for increasing the richness of social presence has been by exposing the underlying social behaviours of group members, and making implicit factors in computermediated communication explicit. For instance, applications have been created that expose social network information [10] as "Socio-Contextual" information (data that makes hidden information about the social context of individuals more visible) to participants within group working scenarios [5, 2, 8] and games [6] .. In related work to that described here, Martino et al found that displaying socio-contextual information in the form of Social Network Analysis (SNA) indices to players of a collaborative group treasure hunting game had a positive effect on increasing group ability to cooperate and engage with the game [9] . In this paper we have described a new application, Magpies, which is a non-task-oriented social game deployed on the Facebook OSN. Magpies uses social network analysis (SNA) information to add social data to the context of a player's interactions within the game.. In a controlled study involving over two hundred users, the research shows that when players were exposed to this additional socio-contextual information, they were more likely to be involved in a higher number of social interactions with other game players compared with a game that did not display this socio-contextual information.. These results corroborate findings in previous work by Martino et al [9] , in which players exposed to SNA information while playing games demonstrated increased activity and engagement, and extends this work further by showing that the observed increase in activity is not just limited to games centred around collaborative task completion or problem solving, but also applies to games such as Magpies, where the central objective is not as clearly defined and the additional social information is provided simply as context to the game play.. Magpies was deployed on the social platform of Facebook and allowed to grow naturally through the social graph. However, results show that the use of socio-contextual augmentation did not have any significant effect on the rate of growth of the player-base. The increased engagement and increased social presence observed with active players does not appear to be a motivating factor for new users to join the game. Since the socio-contextual enhancement in the Magpies condition was not related to the act of recruitment it may not have impacted on recruiting behaviours. In terms of Kluger & DeNisi's theory of Feedback Intervention [7] , when goals and feedbacks are clear as in our socio-contextual information, optimal usage of the feedback occurs, and users' attention is oriented toward task motivation level (in which users usually try to find a way to fill the gap between feedback value and goal value). A feedback on activity (such as the one we are proposing) may shift users' attention toward taskmotivation level and therefore drive users' attention toward increasing social interactions (indices values), since this is the behaviour suggested by the feedback itself.. Player activity may be considered an indicator for social presence in mediated communication [1] , and for a social game such as Magpies, additional socio-contextual information serves to both add an additional layer of context onto the social gaming experience, and also to make the gaming experience more engaging for the players.. We have demonstrated that adding rich socio-contextual information shown to game players can enhance their general engagement with the game. However, it is not clear what specific contextual information is the most effective. In Magpies, players had a large selection of indices to browse, but the relative efficacy of each index is unknown. Over the course of the trial a total of 215 players played the two games. Between both conditions 166 collections were created, and these provoked a total of 364 response interactions (including a combination of text, images and locations) from other players. Table 1 shows the breakdown of players, collections and response interactions between the two distinct conditions. Both conditions had a similar number of players who created a similar number of collections. There is a striking difference in the number of interactions contributed by players in the augmented (Magpies) condition. Figure 3 shows the cumulative growth in registrations experienced by each application during the trial period. The graphs both follow a very similar "S-curve" of diffusion [12] . A month into the trial, the rate of new registrations slowed. This pattern of growth matches the experience of Facebook applications in general [4, 11] . Both Magpies and Beachcombers experienced extremely similar patterns of growth, which indicates that the additional socio-contextual information in the augmented condition does not appear to be an interesting factor for attracting new players, or motivating existing players to actively engage in recruitment. In order to conduct a controlled experiment, a second, almost exact duplicate of the Magpies game was created called Beachcombers, so-named from the activity of exploring beaches to discover trinkets and treasures washed ashore by the tides. This game was identical to Magpies apart from the branding and the fact that the social contextual information was hidden from view of the players themselves.. Both games were released at the same time to a small group of volunteer participants selected by trial organisers and from then additional players were free to join the game through natural "viral" spread. Each new player was asked to complete a release form for trial participation before beginning to play. All interactions with both versions of the system, including page access and usage of functionality, were recorded, along with the results of the social network indices, for post-trial analysis. Players were able to join either game freely. Despite this only one (non-invited) participant interacted with both games during the trial period.. The concurrent trials for both games lasted for 50 days starting at the end of April 2009. At the end of the trial period questionnaires were distributed to all participants in order to gather additional non-procedural information about the trial.

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


Generalizing the notion of confidence Abstract. In this paper, we explore extending association analysis to non-traditional types of patterns and non-binary data by generalizing the notion of confidence. We begin by describing a general framework that measures the strength of the connection between two association patterns by the extent to which the strength of one association pattern provides information about the strength of another. Although this framework can serve as the basis for designing or analyzing measures of association, the focus in this paper is to use the framework as the basis for extending the traditional concept of confidence to Error-Tolerant Itemsets (ETIs) and continuous data. To that end, we provide two examples. First, we (1) describe an approach to defining confidence for ETIs that preserves the interpretation of confidence as an estimate of a conditional probability, and (2) show how association rules based on ETIs can have better coverage (at an equivalent confidence level) than rules based on traditional itemsets. Next, we derive a confidence measure for continuous data that agrees with the standard confidence measure when applied to binary transaction data. Further analysis of this result exposes some of the important issues involved in constructing a confidence measure for continuous data. Traditional association analysis (Agrawal et al. 1993 ) focuses on transaction data, such as the data that results when customers purchase items in a store. This market basket data can be represented as a binary matrix, where there is one row for each transaction, one column for each item, and the ij th entry is 1 if the i th customer purchased the j th item, but is 0 otherwise. 1 More recently, the concept of association analysis has also been applied to continuous data and non-traditional patterns (Steinbach et al. 2004) . A key task of association analysis is finding frequent itemsets, which are sets of items that frequently occur together in a transaction. For example, baby formula and diapers are items that may often be purchased together. The strength of a frequent itemset is measured by its support (Agrawal et al. 1993) , which is the number (or fraction) of transactions in which all items of the itemset appear together. Although frequent itemsets are interesting in their own right, the end goal of association analysis is typically the efficient generation of association rules (Agrawal et al. 1993 , Agrawal & Srikant 1994 , where an association rule is of the form A → B (A and B itemsets) and represents the statement that the items of B occur in a transaction that contains the items of A. The strength of an association rule is measured by the confidence of the rule, conf(A → B), which is the fraction of transactions containing all the items of A that also contain all the items of B. This definition of confidence is an estimate of the conditional probability of A given B.. As just described, the confidence of the association rule A → B is the ratio of the support of A ∪ B to the support of A. Thus, traditional confidence depends on two key elements. First, there must be a definition of support. Second, the ratio of the supports of A ∪ B and A must have a meaningful interpretation. However, the assumptions on which traditional confidence is based may fail to hold. We provide two examples to illustrate this point.. First, consider the non-traditional association pattern, Error-Tolerant Itemsets (ETIs) (Yang et al. 2001 ), which are itemsets in which a specified fraction of the items can be missing from a transaction. (ETIs are useful when, for example, real association patterns are distorted by noise.) To illustrate, if the specified fraction is 0.2, then for a set of 5 items, a transaction supports this itemset if it contains at least 4 out of the 5 items. As described later in this paper, the traditional definition of confidence is not appropriate for ETIs because the ratio of confidence is not meaningful in this case.. Second, consider data with continuous attributes.. 2 Association analysis cannot be directly applied to such data Nonetheless, if discretization techniques (Srikant & Agrawal 1996 , Tan et al. 2005 ) are employed, then association analysis can be used for such data sets. However, discretization complicates the analysis procedure and the interpretation of its results, as well as potentially causing a loss of information. An example of an approach that directly deals with continuous data is Min-Apriori (Han et al. 1997) , which uses the anti-monotone property of the min function to produce a new version of support that also has the anti-monotone property. For binary transaction data, the support computed by Min-Apriori matches that of the standard approach if the data is pre-normalized. However, as described later, when Min-Apriori is applied to binary transaction data, the confidence that Min-Apriori computes for an association rule may not match that of traditional confidence.. To handle issues, such as those illustrated by the previous two examples, this paper presents an approach for generalizing the notion of confidence 3 based on a general framework for defining the strength of the connection between two itemsets. Specifically, this framework views the strength of such a connection (association) as the composition of two functions: (1) a function that evaluates the strength or presence of an association pattern for each transaction, producing a pattern evaluation vector, and (2) a function that measures the strength of the relationship between a pair of pattern evaluation vectors. The strength of the relationship may, for example, be measured by the extent to which one pattern evaluation vector predicts the other, or by the proximity (similarity or dissimilarity) of the two pattern evaluation vectors. Note that the traditional definition of confidence as an estimate of the conditional probability of one set of items given another is an evaluation of how well one set of items predicts another.. The following are specific contributions of this paper: 4 1. We describe a general framework that measures the strength of the connection between two association patterns by the extent to which the strength of one association pattern provides information about the strength of another. The traditional approach to confidence is based on support, which can be regarded as a summarization of the strength of a pattern over all transactions, and represents only one way of measuring the strength of an association between sets of items. In contrast, the proposed framework is based on directly evaluating the relationship between the pattern evaluation vectors of two association patterns. The main focus of this paper is to use this framework to generalize the notion of confidence to non-traditional patterns and continuous data, but this framework has a usefulness beyond that application. For example, the framework allows any measure of association for two items to be used as a measure of association between a pair of itemsets or ETIs that contain multiple items. 2. For traditional binary transaction data, we describe how to modify the standard definition of confidence for Boolean association patterns, 5 including ETIs, so that confidence can be viewed as an estimate of conditional probability. We provide an example of how applying the standard definition of confidence to ETI's yields a nonsensical result, while the modified definition gives the intuitively desired result. Based on these results, we provide an example involving a real-world data set that indicates of how association rules for ETIs can be more powerful than traditional association rules. 3. Using an example based on Min-Apriori, we show (1) a limitation of trying to apply the traditional definition of confidence to continuous data, and (2) demonstrate how we can use our framework to derive an alternative approach to confidence that overcomes this limitation. In doing so, we derive an interesting relationship between cosine similarity and traditional confidence. The confidence measure that we derived is further analyzed to expose some of the important issues involved in constructing a confidence measure for continuous data.. Overview Section 2 introduces the notation that will be used in this paper and quickly reviews the traditional notions of support and confidence. The limitations of confidence for non-traditional association patterns are then considered in Section 3 through an example based on ETIs. In Section 4, we describe our general framework for defining association measures between two itemsets (two sets of attributes). A brief discussion is provided to outline the more general implications of this framework. Section 5 then uses this framework to derive a general definition of confidence for Boolean association patterns that can be interpreted in terms of conditional probability. This section also presents an example (involving ETIs and a real-life data set) that shows that our new approach to confidence can be useful for deriving association rules that are more powerful than traditional association rules. In Section 6, we discuss Min-Apriori, an approach for defining confidence in a traditional manner for continuous data, and demonstrate how this definition is not consistent with traditional confidence when Min-Apriori is applied to binary data. We also show how our framework can be used to derive a new definition for confidence that overcomes this limitation. However, further analysis reveals that yet another approach may be preferable. A discussion of related work is given in Section 7, and Section 8 provides a conclusion and directions for future work. We described a general framework for measures of the strength of an association between two itemsets (sets of attributes) and showed how this framework could be used to generalize confidence. First, we showed how to define confidence for Boolean association patterns, including ETIs, in a way that preserves the interpretation of confidence as an estimate of conditional probability. Second, we constructed an estimate of confidence for continuous data that agrees with traditional confidence when applied to binary data. However, a further analysis of this measure showed that its approach runs counter to the normalization that may be desirable for continuous data.. With respect to future work, there is a need for efficient algorithms for finding high confidence association rules for non-traditional patterns and non-binary data sets. Also, more experiments are needed to evaluate the usefulness of such association rules. Although preliminary, the results of using ETIs to form association rules for the mushroom data set were very promising and need to be further investigated. In particular, we would like to conduct an extensive comparison of the usefulness of rules based on ETIs and traditional association rules. Also, the connection of rules based on ETIs to disjunctive rules and more general Boolean patterns needs to be further explored. In the context of Boolean association patterns, it would be worthwhile to explore using various objective (interestingness) measures (Tan et al. 2002) as association measures, particularly in the context of ETIs or other Boolean association patterns. Finally, more research is needed to understand the appropriate association measures for continuous association analysis.. 1231, NSF grant #ACI-0325949 and by the Army High Performance Computing Research Center under the auspices of the Department of the Army, ARL cooperative agreement number DAAD19-01-2-0014. The content of this work does not necessarily reflect the position or policy of the government and no official endorsement should be inferred. Access to computing facilities was provided by the AHPCRC and the Minnesota Supercomputing Institute. Although there has been considerable work on various association measures (Tan et al. 2002 , we are unaware of any work similar to ours in constructing a framework for such measures or in generalizing confidence. The most relevant previous work concerns interestingness/objective measures. These alternative association measures and their connection to the framework were discussed in Section 4 and are surveyed in Tan et al. 2002 , and Tan et al. 2005 .. Another area that has some connection to our work is quantitative association rules (Aumann & Lindell 1999 , Okoniewski et al. 2003 , Srikant & Agrawal 1996 , Webb 2001 , which try to predict the values of one set of attributes from another. There has also been some work in integrating regression with association analysis (Ozgur et al. 2004 ). However, both these approaches are distinct from our view of association rules and confidence, which involves only the prediction of the strength/presence of one pattern from another.. Finally, we mention our previous work on generalizing support (Steinbach et al. 2004 ), which provides a framework for generalizing support. The work in this paper, although independent of the support work, is complementary to that work. Our previous work on Min-Apriori (Han et al. 1997 ) also played an important role in this work by providing a concrete example of confidence for continuous data. After introducing some notation, we state the formal definitions of concepts, such as support and confidence, that are important to association analysis. Table 1 provides an overview of the notation used in this and later sections. We typically use the traditional terms 'item' and 'transaction' when dealing with binary data, but commonly use the terms 'attribute' and 'object' when dealing with continuous data. In some cases, these terms are used to refer to both binary and continuous data.

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


Appearance based retrieval for tracked objects in surveillance videos This paper focuses on indexing and retrieval at the object level for video surveillance. Object retrieval is difficult due to imprecise object detection and tracking. In the indexing phase, a new representative blob detection method allows to choose the most relevant blobs that represent various object's visual aspects. In the retrieval phase, a new robust object matching method retrieves successfully objects even though they are not perfectly tracked. We validate our approach thanks to videos coming from a subway monitoring project. The representative blob detection method improves the state of the art. The obtained retrieval results show that the object matching method is robust while working with imprecise object tracking algorithms. The increasing number of cameras provides a huge amount of video data. Associating to these video data, retrieval facilities become very useful for many purposes and many kinds of staff. While several approaches have been proposed for video retrieval in meetings, movies, broadcast news, and 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. CIVR '09 Santorini, GR Copyright 2009 ACM 978-1-60558-480-5/09/07 ...$5.00.. sports [14] , few work has been done for retrieving video surveillance [1] , [7] . Current achievements on automatic video understanding [10] such as object detection, object tracking and event recognition, though not perfect, are reliable enough to build efficient surveillance video indexing and retrieval systems.. We have previously proposed a general framework [5] , [6] for video surveillance indexing and retrieval. This framework is based on the hypothesis that videos are partially indexed thanks to previous work in video analysis and video surveillance such as object tracking and event recognition. The proposed framework allows to retrieve both objects and events of interest. A query language has also been presented. However, in the former version of this framework, object matching is not robust because one object is represented by one sole instance, that is the first blob detected. In this paper, we propose an indexing and retrieval approach at the object level for video surveillance. We call this sub module, the object indexing and retrieval for surveillance videos.. This paper is organized as follows:. In section 2, we analyze open problems of the object indexing and retrieval tasks for surveillance videos. The related work is presented in section 3. Section 4 aims at describing the proposed approach. Experimental results on real surveillance video sequences are presented and analyzed in section 5. We conclude and discuss future work in section 6. In this paper, two methods dedicated to indexing and retrieval at the object level for video surveillance, a representative blob detection method and an object matching method, are proposed. The two proposed methods outperform the Ma's method. The obtained results show that the proposed approach manages to work with imprecise object detection and tracking algorithms. However, due to errors in the classification step of the representative blob detection method, results are still limited. This step can be improved by applying other visual features. Concerning the object matching, combining multiple descriptors will be also considered in our future work. The proposed approach is evaluated and compared with the approach of Ma et al. [7] . Two approaches are compared by the representative blob detection method and the object matching method. This related work focuses on the object indexing and retrieval for surveillance videos. A more complete state of the art on video surveillance indexing and retrieval can be found in [6] .. In [15] , objects are firstly detected and tracked by using Kalman filter. Then, the MPEG-7 descriptors such as dominant colors, edge histograms are computed over object's life time. This method is not effective because average descriptors cannot characterize reliably the objects when object detection and tracking are not perfect.. The work of Calderara et al. [1] focuses on searching blobs of an object over a network of overlapping cameras. A mixture of Gaussians is used to summarize the appearance of the object observed by a set of cameras. At each instant, the mixture of Gaussians is updated by dominant colors computed over object blob. Query is also represented by a mixture of Gaussians. Objects are retrieved based on distance between mixtures of Gaussians. In this work, objects are successfully retrieved if the object detection and tracking are reliable.. The approach presented by Ma et al. [3] , [7] consists of two methods: a representative blob detection method and an object matching method. The representative blob detection is based on the agglomerative hierarchical clustering and the covariance matrix extracted on object blobs. After performing the agglomerative clustering on all blobs of an object, clusters containing a small number of elements (outliers) are removed. For the other clusters, one representative blob is defined for each cluster. Therefore, the representative blob detection method dominate errors of the object detection if they occur in a small number of frames. Concerning object matching, the Hausdorff distance is then used to compute the distance between two sets of representative blobs. However, the Hausdorff distance is not relevant when working with object tracking algorithms having a high value of object ID confusion because this distance is extremely sensitive to outliers. If two sets of points A and B are similar, all the points are perfectly superimposed except only one single point in A which is far from any point in B, then the Hausdorff distance determined by this point.. The state of the art work cannot solve the three problems analyzed in section 2.

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


Solving Games via Three-Valued Abstraction Refinement Abstract. Games that model realistic systems can have very large statespaces, making their direct solution difficult. We present a symbolic abstractionrefinement approach to the solution of two-player games. Given a property, an initial set of states, and a game representation, our approach starts by constructing a simple abstraction of the game, guided by the predicates present in the property and in the initial set. The abstraction is then refined, until it is possible to either prove, or disprove, the property over the initial states. Specifically, we evaluate the property on the abstract game in three-valued fashion, computing an over-approximation (the may states), and an under-approximation (the must states), of the states that satisfy the property. If this computation fails to yield a certain yes/no answer to the validity of the property on the initial states, our algorithm refines the abstraction by splitting uncertain abstract states (states that are may-states, but not must-states). The approach lends itself to an efficient symbolic implementation. We discuss the property required of the abstraction scheme in order to achieve convergence and termination of our technique. We present the results for reachability and safety properties, as well as for fully general ω-regular properties. Games provide a computational model that is widely used in applications ranging from controller design, to modular verification, to system design and analysis. The main obstacle to the practical application of games to design and control problems lies in very large state space of games modeling real-life problems. In system verification, one of the main methods for coping with large-size problems is abstraction. An abstraction is a simplification of the original system model. To be useful, an abstraction should contain sufficient detail to enable the derivation of the desired system properties, while being succinct enough to allow for efficient analysis. Finding an abstraction that is simultaneously informative and succinct is a difficult task, and the most successful approaches rely on the automated construction, and gradual refinement, of abstractions. Given a system and the property, a coarse initial abstraction is constructed: this initial abstraction typically preserves only the information about the system that is most immediately involved in the property, such as the values of the state variables mentioned in the property. This initial abstraction is then gradually, and automatically, refined, until the property can be proved or disproved, in the case of a verification problem, or until the property can be analyzed to the desired level of accuracy, in case of a quantitative problem.. One of the most successful techniques for automated abstraction refinement is the technique of counterexample-guided refinement, or CEGAR [2, 5, 3] . According to this technique, given a system abstraction, we check whether the abstraction satisfies the property. If the answer is affirmative, we are done. Otherwise, the check yields an abstract counterexample, encoding a set of "suspect" system behaviors. The abstract counterexample is then further analyzed, either yielding a concrete counterexample (a proof that the property does not hold), or yielding a refined abstraction, in which that particular abstract counterexample is no longer present. The process continues until either a concrete counterexample is found, or until the property can be shown to hold (i.e., no abstract counterexamples are left). The appeal of CEGAR lies in the fact that it is a fully automatic technique, and that the abstraction is refined on-demand, in a property-driven fashion, adding just enough detail as is necessary to perform the analysis. The CEGAR technique has been extended to games in counterexample-guided control [12] .. We propose here an alternative technique to CEGAR for refining game abstractions: namely, we propose to use three-valued analysis [16, 17, 9] in order to guide abstraction refinement for games. Our proposed technique works as follows. Given a game abstraction, we analyze it in three-valued fashion, computing the set of must-win states, which are known to satisfy the property, and the set of never-win states, which are known not to satisfy the property; the remaining states, for which the satisfaction is unknown, are called the may-win states. If this three-valued analysis yields the desired information (for example, showing the existence of an initial state with a given property), the analysis terminates. Otherwise, we refine the abstraction in a way that reduces the number of may-win states. The abstraction refinement proceeds in a property-dependent way. For reachability properties, where the goal is to reach a set of target states, we refine the abstraction at the may-must border, splitting a may-win abstract state into two parts, one of which is known to satisfy the property (and that will become a must-win state). For the dual case of safety properties, where the goal is to stay always in a set of "safe" states, the refinement occurs at the may-never border. We show that the proposed abstraction refinement scheme can be uniformly extended to games with parity objectives: this enables the solution of games with arbitrary ω-regular objectives, via automata-theoretic transformations [19] .. Our proposed three-valued abstraction refinement technique can be implemented in fully symbolic fashion, and it can be applied to games with both finite and infinite state spaces. The technique terminates whenever the game has a finite region algebra (a partition of the state space) that is closed with respect to Boolean and controllablepredecessor operators [10] : this is the case for many important classes of games, among which timed games [13, 8] . Furthermore, we show that the technique never performs unnecessary refinements: the final abstraction is never finer than a region algebra that suffices for proving the property.. In its aim of reducing the number of may-states, our technique is related to the threevalued abstraction refinement schemes proposed for CTL and transition systems in [16, 17] . Differently from these approaches, however, we avoid the explicit construction of the tree-valued transition relation of the abstraction, relying instead on may and must versions of the controllable predecessor operators. Our approach provides precision and efficiency benefits. In fact, to retain full precision, the must-transitions of a three-valued model need to be represented as hyper-edges, rather than normal edges [17, 9, 18] ; in turn, hyper-edges are computationally expensive both to derive and to represent. The may and must predecessor operators we use provide the same precision as the hyperedges, without the associated computational penalty. For a similar reason, we show that our three-valued abstraction refinement technique for game analysis is superior to the CEGAR technique of [12] , in the sense that it can prove a given property with an abstraction that never needs to be finer, and that can often be coarser. Again, the advantage is due to the fact that [12] represents player-1 moves in the abstract model via must-edges, rather than must hyper-edges. A final benefit of avoiding the explicit construction of the abstract model, relying instead on predecessor operators, is that the resulting technique is simpler to present, and simpler to implement. We have presented a technique for the verification of game properties based on the construction, three-valued analysis, and refinement of game abstractions. The approach is suitable for symbolic implementation and, being based entirely on the evaluation of predecessor operators, is simple both to present and to implement. We plan to implement the approach as part of the Ticc toolset of interface composition and analysis [1] , applying it both to the untimed interface composition problem (which requires solving safety games), and to the timed interface composition problem (which requires solving 3-color parity games).

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