Detecting critical nodes in sparse graphs ABSTRACT. Identifying critical nodes in a graph is important to understand the structural characteristics and the connectivity properties of the network. In this paper, we focus on detecting critical nodes, or nodes whose deletion results in the minimum pair-wise connectivity among the remaining nodes. This problem, known as the CRITICAL NODE PROBLEM has applications in several fields including biomedicine, telecommunications, and military strategic planning. We show that the recognition version of the problem is N P -complete and derive a mathematical formulation based on integer linear programming. In addition, we propose a heuristic for the problem which exploits the combinatorial structure of the graph. The heuristic is then enhanced by the application of a local improvement method. A computational study is presented in which we apply the integer programming formulation and the heuristic to real and randomly generated data sets. For all instances tested, the heuristic is able to efficiently provide optimal solutions in a fraction of the time required by a commercial software package. Given a graph and an integer k, the objective of the CRITICAL NODE PROBLEM (CNP) is to find a set of k nodes in the graph whose deletion results in the maximum network fragmentation. By this we mean, minimize the pair-wise connectivity between the nodes in the k-vertex deleted subgraph. Similar studies appearing in the social networks literature include those by Bavelas [3] and Freeman [12] which emphasize node centrality and prestige, both of which are usually functions of node degree. However, they lack applications to problems which emphasize network fragmentation and connectivity.. The CRITICAL NODE PROBLEM has several applications in the field of social network analysis. Social networks have attracted a significant amount of attention in recent years. The study of these graphs is important to better understand several properties which are most common in network depictions of social interactions including cohesion, transitivity, and centrality of specific actors of the graph [2] . The study of the various properties of social networks such as diameter, radiality, and connectivity are responsible for social contagion and provide scope for containment of an epidemic outbreak. These properties also help in designing strategies for communication breakdowns in human and telecommunication networks [24] .. The CNP finds applications in network immunization [6, 26] where mass vaccination is an expensive process and only a specific number of people, modeled as nodes of a graph, can be vaccinated. The immunized nodes cannot propagate the virus and the goal is to identify the individuals to be vaccinated in order to reduce the overall transmissibility of the virus. There are several vaccination strategies in the literature (see e.g., [6, 26] ) offering control of epidemic outbreaks; however, none of the proposed are optimal strategies. The vaccination strategies suggest emphasizing the centrality of nodes as a major factor rather than critical nodes whose deletion will maximize the disconnectivity of the graph. Deletion of central nodes may not guarantee a fragmentation of the network or even disconnectivity, in which case disease transmission cannot be prevented. Because social networks model the patterns of humans, they vary greatly over time. The relationships between people, represented by edges in the social network, are transient and there is a constant rewiring between the nodes as new relationships are established. The proposed critical node technique minimizes the transmission of the disease over an instance of the dynamic network.. Furthermore, the CNP can be applied to the study of covert terrorist networks, where a certain number of individuals have to be identified whose deletion will result in the maximum breakdown of communication between individuals in the network [18] . Likewise in order to stop the spreading of a virus over a telecommunication network, one can identify the critical nodes of the graph and take them offline. Similarly, if one's ultimate goal is to prevent communication on a wired telecommunication network, an efficient way of doing so would be to jam the critical nodes. This has been studied in the context of wireless networks by Commander et al. in [7] .. Before proceeding, we mention one final area in which the CRITICAL NODE PROBLEM finds several applications, and that is in the field of transportation engineering [11] . Two particular examples are as follows. In general, for transportation networks, it is important to identify critical nodes in order to ensure they operate reliably for transporting people and goods throughout the network. Further, in planning for emergency evacuations, identifying the critical nodes of the transportation network is crucial. The reason is two-fold. First, knowledge of the critical nodes will help in planning the allocation of resources during the evacuation. Secondly, in the aftermath of a disaster they will help in re-establishing critical traffic routes.. Borgatti [4] has studied a similar problem, focusing on node detection resulting in maximum network disconnectivity. Other studies in the area of node detection such as centrality [3, 12] focus on the prominence and reachability to and from the central nodes. However, little emphasis is placed on the importance of their role in the network connectivity and diameter. Perhaps one reason for this is that all of the aforementioned references relied on simulation to conduct their studies. Although the simulations have been successful, a mathematical formulation is essential for providing insight and helping to reveal some of the fundamental properties of the problem [22] . In the next section, we present a mathematical model based on integer linear programming which provides optimal solutions for the CRITICAL NODE PROBLEM.. We organize this paper by first formally defining the problem and discussing its computational complexity. Next, we provide an integer programming (IP) formulation for the corresponding optimization problem. In Section 3 we introduce a heuristic to quickly provide solutions for instances of the problem. We present a computational study in Section 4, in which we compare the performance of the heuristic against the optimal solutions which were computed using a commercial software package. Some concluding remarks are given in Section 5.

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


Data

and

knowledge

visualization

with

virtual

reality

spaces,

neural

networks

and

rough

sets:

Application

to

cancer

and

geophysical

prospecting

data

Nous

pouvons

vous

aider.

Pour

communiquer

directement

avec

un

auteur,

consultez

la

première

page

de

la

revue

dans

laquelle

son

article

a

été

publié

afin

de

trouver

ses

coordonnées.

Si

vous

n'arrivez

pas

à

les

repérer,

communiquez

avec

nous

à

PublicationsArchive-ArchivesPublications@nrc-cnrc.gc.ca.

Access

and

use

of

this

website

and

the

material

on

it

are

subject

to

the

Terms

and

Conditions

set

forth

at

Data

and

knowledge

visualization

with

virtual

reality

spaces,

neural

networks

and

rough

sets

application

to

cancer

and

geophysical

prospecting

data

Valdés,

Julio

J.;

Romero,

Enrique;

Barton,

Alan

J.

L'accès

à

ce

site

Web

et

l'utilisation

de

son

contenu

sont

assujettis

aux

conditions

présentées

dans

le

siteVisual

data

mining

with

virtual

reality

spaces

is

used

for

the

representation

of

data

and

symbolic

knowledge.

High

quality

structure-preserving

and

maximally

discriminative

visual

representations

can

be

obtained

using

a

combination

of

neural

networks

(SAMANN

and

NDA)

and

rough

sets

techniques,

so

that

a

proper

subsequent

analysis

can

be

made.

The

approach

is

illustrated

with

two

types

of

data:

for

gene

expression

cancer

data,

an

improvement

in

classification

performance

with

respect

to

the

original

spaces

was

obtained;

for

geophysical

prospecting

data

for

cave

detection,

a

cavity

was

successfully

predicted.

Knowledge

discovery

is

the

non-trivial

process

of

identifying

valid,

novel,

potentially

useful,

and

ultimately

understandable

patterns

in

data

In

general,

data

under

study

are

described

in

terms

of

collections

of

heterogeneous

properties,

typically

composed

of

properties

represented

by

nominal,

ordinal

or

real-valued

(scalar)

variables,

as

well

as

by

others

of

a

more

complex

nature,

like

images,

time-series,

etc.

In

addition,

the

information

comes

with

different

degrees

of

precision,

uncertainty

and

information

completeness

(missing

data

is

quite

common).

Patterns

to

discover

are

also

of

different

kinds

(geometrical,

logical,

behavioral,

etc.)..

Technological

advancements

in

recent

years

are

enabling

the

collection

of

large

amounts

data

in

many

fields.

For

example,

in

the

field

of

Bioinformatics,

high-throughput

microarray

gene

experiments

are

possible,

leading

to

an

information

explosion.

This

increasing

rates

of

data

generation

require

the

development

of

data

mining

procedures

facilitating

the

in-depth

understanding

of

the

internal

structure

of

data

more

rapidly

and

intuitively..

The

complexity

of

many

data

analysis

procedures

makes

it

more

difficult

for

the

user

to

extract

useful

information

out

of

the

results

from

the

techniques

applied.

Classical

data

mining

and

analysis

methods

are

sometimes

difficult

to

use,

the

output

of

many

procedures

may

be

large

and

time

consuming

to

analyze,

and

often

their

interpretation

requires

special

expertise.

Moreover,

some

methods

are

based

on

assumptions

about

the

data

which

limit

their

application,

specially

for

the

purpose

of

exploration,

comparison,

hypothesis

formation,

etc.,

typical

of

the

first

stages

of

scientific

investigation..

The

role

of

visualization

techniques

in

the

knowledge

discovery

process

is

well

known.

The

human

brain

still

outperforms

the

computer

in

understanding

complex

geometric

patterns,

thus

making

the

graphical

representation

of

complex

and

abstract

information

directly

appealing.

A

virtual

reality

(VR)

technique

for

visual

data

mining

on

heterogeneous,

imprecise

and

incomplete

information

systems

was

introduced

in

Several

reasons

make

VR

a

suitable

paradigm

for

visual

data

mining:

different

representation

models

according

to

human

perception

preferences

can

be

chosen,

it

allows

immersion,

it

creates

a

living

experience,

it

is

broad

and

deep,

and

for

using

VR

the

user

needs

no

mathematical

knowledge

and

no

special

skills..

The

purpose

of

this

paper

is

twofold.

First,

to

explore

the

construction

of

high

quality

VR

spaces

for

visual

data

mining

using

a

combination

of

neural

networks

and

rough

sets

techniques.

Second,

to

use

the

quality

of

the

constructed

VR

spaces

for

classification

tasks.

The

whole

process

is,

in

turn,

divided

into

two

steps.

In

the

first

one,

both

data

and

symbolic

knowledge

are

transformed

into

VR

spaces

where

their

structure

and

properties

can

be

visually

inspected

and

quickly

understood.

In

the

second

step,

a

proper

subsequent

analysis

is

made

within

the

constructed

VR

spaces

with

the

aim

of

obtaining

good

classification

results.

This

latter

analysis

depends

on

the

problem

at

hand.

The

approach

is

illustrated

with

two

types

of

data:

gene

expression

cancer

data

and

geophysical

prospecting

data

for

cave

detection..

Three

two-class

gene

expression

cancer

data

sets

were

selected,

representative

of

three

of

the

most

important

types

of

cancer

in

modern

medicine:

liver,

stomach

and

lung.

They

are

composed

of

samples

from

normal

and

tumor

tissues,

described

in

terms

of

tens

of

thousands

of

variables,

related

to

the

gene

expression

intensities

measured

in

microarray

experiments.

In

the

first

step,

neural

networks

for

Sammon's

projection

(SAMANN)

are

used

for

unsupervised

structure-preserving

mapping

to

low-dimensional

feature

spaces,

where

the

corresponding

VR

spaces

are

constructed.

Despite

the

very

high

dimensionality

of

the

original

patterns,

high

quality

visual

representations

in

the

form

of

structure-preserving

virtual

spaces

are

obtained

for

every

data

set,

which

enables

the

differentiation

of

cancerous

and

noncancerous

tissues:

the

projected

spaces

are

polarized

with

two

distribution

modes,

each

one

corresponding

to

a

different

class.

In

the

second

step,

linear

Support

Vector

Machines

are

constructed

in

the

respective

projected

spaces,

leading

to

an

improvement

in

classification

performance

with

respect

to

the

original

spaces..

A

case

of

geophysical

prospecting

for

underground

caves

is

also

studied.

It

is

not

the

typical

two-class

presence/absence

problem

because

only

one

class

is

known

with

certainty.

In

contrast,

this

is

a

problem

with

partially

defined

classes:

the

existence

of

a

cave

beneath

a

measurement

station

is

either

known

for

sure

or

unknown.

In

the

first

step,

SAMANN

and

Nonlinear

Discriminant

Analysis

(NDA)

networks

are

constructed.

SAMANN

networks

are

used

for

unsupervised

mapping

to

low-dimensional

feature

spaces,

obtaining

high

quality

structure-preserving

visual

representations.

NDA

networks

are

used

for

supervised

mapping

to

low-dimensional

feature

spaces

where

objects

belonging

to

different

classes

are

maximally

differentiated.

In

the

second

step,

the

VR

spaces

and

the

NDA

results

allow

to

derive

a

fuzzy

cave

membership

function

and

to

predict

unknown

objects

to

the

cave

class.

In

one

of

the

areas

with

higher

values,

a

borehole

drilled

actually

hit

a

cavity.

Rough

sets

methods

are

applied

for

evaluating

the

information

content

of

the

original

descriptor

variables

and

for

the

extraction

of

symbolic

rules

from

the

data.

The

general

properties

of

the

symbolic

knowledge

can

be

found

with

greater

ease

in

the

virtual

reality

space,

and

the

structures

of

the

knowledge

base

and

the

data

were

found

very

similar.

A

combination

of

neural

networks

and

rough

set

techniques

was

used

for

constructing

virtual

reality

spaces

for

visual

data

mining

suitable

for

representing

data

and

symbolic

knowledge.

Good

neural

network

models

were

found

with

the

use

of

distributed

computing

techniques,

that

were

used

as

mapping

functions

to

produce

high

quality

VR

spaces

where

the

properties

of

data

and

symbolic

knowledge

can

be

revealed..

For

microarray

gene

expression

cancer

data

sets,

the

obtained

results

show

that

a

few

non-linear

features

can

effectively

capture

the

similarity

structure

of

the

data

and

also

provide

a

good

differentiation

between

the

cancer

and

normal

classes.

Linear

Support

Vector

Machines

constructed

in

projected

spaces

lead

to

an

improvement

in

classification

performance.

However,

in

cases

where

the

descriptor

attributes

are

not

directly

related

to

class

structure

or

where

there

are

many

noisy

or

irrelevant

attributes

the

situation

may

not

be

as

clear.

In

these

cases,

feature

subset

selection

and

other

data

mining

procedures

could

be

considered

in

a

preprocessing

stage..

Problems

with

partially

defined

classes

can

be

approached

successfully

by

combining

unsupervised

and

supervised

techniques.

A

method

for

constructing

membership

functions

in

problems

with

partially

defined

classes

is

proposed

which

can

be

used

as

a

forecasting

tool,

as

illustrated

with

an

example

from

geophysical

prospecting.

This

approach

can

be

extended

to

multiclass

problems

with

partially

defined

classes.

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


Comparison of design concepts in multi-criteria decision-making using level diagrams In this work, we address the evaluation of design concepts and the analysis of multiple Pareto fronts in multi-criteria decision-making using level diagrams. Such analysis is relevant when two (or more) design concepts with different design alternatives lie in the same objective space, but describe different Pareto fronts. Therefore, the problem can be stated as a Pareto front comparison between two (or more) design concepts that only differ in their relative complexity, implementation issues, or the theory applied to solve the problem at hand. Such analysis will help the decision maker obtain a better insight of a conceptual solution and be able to decide if the use of a complex concept is justified instead of a simple concept. The approach is validated in a set of multi-criteria decision making benchmark problems. It is common to state a design problem as an optimization statement, where a specific cost index must be optimized. However, many real world problems require the fulfillment of a set of requirements and specifications. In that case, it is said to have a multi-objective problem (MOP) instead of a single-objective problem. In such statements, it is usual to find that some objectives are in conflict with each other, and a trade-off solution must be found (or selected).. Multi-objective optimization (MOO) can handle these issues in a simple manner, due to its simultaneous optimization approach. In MOO, all the objectives are significant to the designer, and as a consequence, each is optimized. In general, there is no single solution because no solution is better than the others in all the objectives. Therefore, a set of solutions, the Pareto set Θ P , is defined and its objective vector set as the Pareto front J P . This set of solutions offers the decision maker (DM) greater flexibility at the multi-criteria decision-making stage. The role of the designer is to select the best solution according to her/his needs and preferences for a particular situation.. MOO techniques search for a discrete approximation Θ * P of the Pareto set Θ P in order to build a useful description J * P of the Pareto front that is as good as possible. In this way, the DM has a set of solutions for a given problem and a high degree of flexibility when choosing a particular or desired solution. Classic techniques [31] for building this Pareto front have been used (for example: weighting vectors; ǫ-constraint and goal programming methods); as well as specialized algorithms (normal boundary intersection method [8] , normal constraint method [29, 42, 27, 26] ; and successive Pareto front optimization [40] ). Multi-objective evolutionary algorithms (MOEAs) have been recently used due to their flexibility when dealing with non-convex and highly constrained functions [7, 6] . Some examples include: NSGA-II [10] ; MOGA [13] ; ev-MOGA [17] ; paǫ-MyDE [16] ; paǫ-ODEMO [14] , sp-MODE [35] , NOSGA [11] , DNMOEA/HI [24] . Furthermore, new techniques to improve diversity in the Pareto front for MOEAs have been proposed [47, 34, 5] .. Once the DM has been provided with a Pareto front J * P , the DM will need to analyze the trade-off between objectives and select the most preferable solution according to his preferences. Such an approach has been termed generate first-choose later [30] . Several techniques and methods have been developed to facilitate the DM's task [12, 1, 32, 49] . It is widely accepted that visualization tools are valuable and provide decision makers with a meaningful method to analyze the Pareto front and take decisions [3] . We can recall the desirable characteristics for such visualization techniques noted in [25] included: simplicity (it should be easy to understand); persistence (the DM should be able to retain all information in his/her mind); and completeness (all the relevant information should be shown). Moreover, desirable characteristics (at software level) include interactivity with the DM and an intuitive graphical user interface.. For two-dimensional problems (and sometimes for three-dimensional problems) it is usually straightforward to make an accurate graphical analysis of the Pareto front, but the difficulty increases with the dimension of the problem. Common alternatives to tackle an analysis in higher dimensions are scatter diagrams and parallel coordinates [19, 20] . The former uses an array of scatter diagrams for each pair of objectives. The latter plots an m-dimensional objective vector in a two-dimensional graph. Each dimension of the original data is translated to an x-coordinate in the two-dimensional plot. This is a very compact way of presenting multidimensional information, but with large sets of data it loses clarity and the analysis becomes more difficult for the DM [2] . Recently, hybrid tools merging parallel coordinates, dendrograms, and cluster maps have been proposed [4] .. Recently, level diagrams (LD) [2] have been provided as a practical solution for achieving accurate analysis on m-dimensional Pareto fronts by enabling the DM to correlate tendencies between the Pareto set and Pareto front. This visualization has been successfully used in control systems [36, 37, 38, 15] , safety systems analysis [52] , and reliability engineering [50, 51] . As pointed in [41] , LD is one of the most useful methods for visualizing m-dimensional Pareto fronts.. A further analysis on objective tradeoff by the DM could include the selection and com-parison of various design concepts (i.e. different methods) for solving an MOP. However, the higher the dimension of the objective vector, the greater the difficulty in performing an analysis. This task will be more complex if the aim is to perform a comparison of two (or more) design concepts. An analysis of the objective exchange when different design concepts are used will provide a better insight into the problem at hand. This new analysis will help the DM compare different design approaches, and evaluate the circumstances where he/she would prefer one over another; furthermore, the DM can decide if the use of a complex concept is justified over a simple concept. In this paper, the LD capabilities are improved by defining a new quality measure to perform an analysis between Pareto fronts (design concepts) for a given MOP statement. This work is developed on two assumptions:. • For the DM it is important to compare the degree of improvement of one design concept over other(s). This could be justified by the fact that some of the qualitative preferences of one design concept are important to bear in mind during the final selection. If there are no preferences for the design concepts under consideration, a global Pareto front could be calculated with solutions from all design concepts; in such case, the analysis on a single Pareto front described in [2] with LD visualization would be enough.. • This visualization is complementary, i.e. it does not substitute the LD visualization technique shown in [2] , but it gives additional information to the DM.. The remainder of this paper is as follows: in Section 2 some preliminaries in MOO and design concepts definition are stated. In Section 3 the new framework for concept comparison by means of LD is defined. In Section 4, the new LD framework is validated as a practical tool for concept comparison with a set of MOP. Finally, some concluding remarks are given. In this work, a new quality measurement Q(J i (θ i ), J * pj ) was defined to perform concept comparison using level diagrams (LD). With this measure, and the flexibility of LD to visualize and analyze m-dimensional Pareto fronts, the DM is able to obtain a better insight into objective tradeoffs for different concepts. This was validated in a set of multi-criteria decision making problems of 2,3,5 and 6 objectives.. Furthermore, with the Q(J i (θ i ), J * pj ) quality measurement it is possible to have a measure of alternative design improvements between design concepts. With this feature, it is possible to build a Pareto front for a set of concepts filtered (fs-Pareto) with the DM preferences. In this fs-Pareto front, the DM can accept sub-optimal solutions for one concept when for example, the improvement of one concept over another is small, and the use of the s-Pareto optimal solution is not justifiable.. Finally, the Q(J i (θ i ), J * pj ) quality measurement is used to test multi-objective optimization algorithms since it can measure the improvement of one algorithm over another. Although such evaluation can be done by means of the original I ǫ binary indicator that calculates a single scalar for each Pareto front; with the Q(J i (θ i ), J * pj ) quality measurement it is possible to analyze the regions in the objective space where an algorithm performs better, thereby obtaining a better understanding of its weaknesses and strengths. This characteristic could be desirable when the algorithms are evaluated with real-world application problems.

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


Semantic-based delivery of OLAP summary tables in wireless environments With the rapid growth in mobile and wireless technologies and the availability, pervasiveness and cost effectiveness of wireless networks, mobile computers are quickly becoming the normal front-end devices for accessing enterprise data. In this paper, we are addressing the issue of efficient delivery of business decision support data in the form of summary tables to mobile clients equipped with OLAP front-end tools. Towards this, we propose a new on-demand scheduling algorithm, called SBS, that exploits both the derivation semantics among OLAP summary tables and the mobile clients' capabilities of executing simple SQL queries. It maximizes the aggregated data sharing between clients and reduces the broadcast length compared to the already existing techniques. The degree of aggregation can be tuned to control the tradeoff between access time and energy consumption. Further, the proposed scheme adapts well to different request rates, access patterns and data distributions. The algorithm effectiveness with respect to access time and power consumption is evaluated using simulation. With the rapid growth in wireless technologies and the cost effectiveness in deploying wireless networks, wireless devices are quickly becoming alternative platforms for accessing enterprise data. This, combined with the increased popularity of palmtop and hand-held computers as well as the availability of light yet powerful laptop computers, mobile computers will become the normal front-end devices hosting sophisticated business applications.. One such sophisticated business application which is central to the success of any enterprise is the support of decision making. Without an effective decision support system, enterprises will be unable to exploit opportunities as they appear anywhere and anytime. For good decision making, executives and managers need to count on up-to-date, business-critical data, being instantly available on their handheld and wireless computers. Such data are typically in the form of summarized information tailored to suit the users' analysis interests.. Traditionally, decision makers use OLAP (On-Line Analytical Processing) tools to execute decision support queries on the enterprise data warehouse or data mart. OLAP tools provide multidimensional views of data to facilitate decision making [5] . The multidimensional data model abstracts data in the form of a data cube where dimensions are the subject of interests (aggregated attributes) and the cell values are the measures of interest [11] . An OLAP server may store multiple summary tables (subcubes) for efficient access by queries issued by OLAP tools at the client. An interesting property of summary tables which we call derivation dependency, is that one summary table can be derived from one or more summary tables.. In this paper, we are addressing the issue of efficient delivery of summary tables to wireless clients (e.g., on a company wireless intranet) equipped with OLAP front-end tools. In wireless networks, broadcasting is the primary mode of operation for the physical layer. Thus, broadcasting is the natural method to propagate information in wireless links and guarantee scalability for bulk data transfer. Specifically, data can be efficiently disseminated by any combination of the following two schemes: broadcast push and broadcast pull. These exploit the asymmetry in wireless communication and the reduced energy consumption in the receiving mode. Client devices are assumed to be small and portable, and most often rely for their operation on the finite energy provided by batteries. Servers have both much larger bandwidth (downlink) available than client devices In broadcast push the server repeatedly sends information to the clients without explicit client requests. Any number of clients can monitor the broadcast channel and retrieve data as they arrive on the broadcast channel. If data is properly organized to cater to the needs of the clients, such a scheme makes an effective use of the low wireless bandwidth and is ideal to achieve maximal scalability [1, 14, 12] .. In broadcast pull, the clients make explicit requests for data. If multiple clients request the same data at approximately the same time, the server may aggregate these requests, and only broadcast the data once. Such a scheme also makes an effective use of the low wireless bandwidth and clearly improves user perceived performance. Several scheduling algorithms have been proposed that attempt to achieve maximum aggregation [2, 8, 21, 22] .. Considering the traditional OLAP server basic functionality, the broadcast pull or on-demand environment as shown in Figure 1 , is the most suitable for supporting wireless OLAP query processing. Interestingly, the client requests in the wireless OLAP system exhibit the above mentioned derivation dependency feature. That is, every client request is for one of the summary tables and a table requested by a client may subsume the table requested by another client. Since request aggregation is commonly used by general content delivery scheduling algorithms for efficient data dissemination, the derivation dependency property adds a new optimization dimension to the request aggregation process that allows further broadcast efficiency and scalability.. In this paper, we propose a new, heuristic, on-demand scheduling algorithm called Subsumption-Based Scheduler (SBS-α). SBS-α is non-preemptive and considers the varying sizes of the summary tables. The unique characteristic of SBS-α is its α-optimizer that exploits the derivation dependency among the summary tables to increase sharing among clients that goes beyond the exact match of requests of all the current on-demand scheduling approaches. Because each table satisfying a particular request incurs a different processing cost, SBS-α considers this cost when selecting the set of requests to be aggregated into the specific table which is broadcast at a given point. This cost is captured by the selected value of α. By considering that each different value of α yields a different scheduler, SBS-α can be thought of as a family of scheduling algorithms as well.. The performance of our new heuristic was evaluated experimentally using simulation. We used a non-preemptive version of the Longest Total Stretch First (LTSF) algorithm, both as the basis for SBS and in our comparisons. As we will argue below, from the existing approaches, LTSF promises the best performance for scheduling OLAP summary tables. Our experimental results have shown that exploiting the OLAP data cubes semantics allows SBS to achieve reductions up to 65% in average access time, while reducing average energy consumption by 16%.. The rest of this paper is organized as follows. The next section presents an overview of the related work in OLAP technologies and broadcast-based data dissemination techniques. In Section 3, we discuss our assumed wireless OLAP environment and in Section 4, we present SBS, our new ondemand scheduling algorithm. Our simulation testbed and experiments are presented in Sections 5 and 6, respectively. In this paper, we re-emphasized the role of broadcast based data dissemination in supporting efficient access of enterprise data warehouse and consequently enabling good decision making anytime and anywhere. Although the emphasis of our paper was on wireless and mobile computing environments, our result are applicable in wired networks which support multicasting.. More specifically, this paper has made three contributions in the context of on-demand broadcast scheduling:. • It identified the new possibility of request aggregation based on the subsumption semantics among summary tables rather than just based on the exact match of requests of all the current approaches.. • It classified on-demand scheduling algorithms into strict and flexible based on their ability to broadcast subsuming tables in respond to a given request. Flexibility allows us to distinguish between the already existing on-demand broadcast scheduling algorithms that are restricted to exact match and our semantic-based SBS-α in the context of wireless OLAP environment. Accordingly, we are calling the algorithms mentioned in Section 2 strict algorithms, while the family of SBS-α, where α > 0, are flexible algorithms.. The intuition for SBS is to capture all the specific features of summary tables access in an on-demand broadcast 1 The server may also periodically broadcast the number of distinct values of each dimension along with the meta-data information about its service. (10) d 2 (20) d 4 The advantage of flexibility is to find another aspect of common interest other than the exact strict one, hence decreasing the wait time and the corresponding doze energy. The drawback is the extra time a client has to spend tuning to a detailed table rather than a summarized one and the accompanying high energy consumed in the active mode. Picking a reasonable value for α will balance the trade-off between reducing the wait time (doze energy consumption) and increasing the tune time (active energy consumption). As in [11] , we are assuming a linear cost model for aggregate query processing, where a table scan is required to compute the result. Hence, when extra filtering and extraction is required, it can simply overlap with the tuning phase when the client is downloading a table. As we will argue in Section 6 the energy required for processing is insignificant compared to the energy needed for wireless communication and can be ignored.. As . T bcast is disseminated, the client requested T small would rather wait for the next broadcast cycles to avoid the costly tune time of downloading T bcast . Let us now consider a simple numeric example that highlights the differences in scheduling decisions, average access time, and average tune time for different values of the parameter α. Table 1 shows the example settings, where there are four requests for four different tables T1, T2, T3, and T4. The Ai value represents the wait time of a request for table Ti, and Si value is | Ti |. Additionally, we are assuming that tables T2 and T3 are derivable from T4. The scheduler has to make the decision what is the sequence of tables to broadcast given the queue status at each broadcast cycle. In this snapshot, the four requests constitute the whole workload, i.e., no more requests will arrive at the server. Table 2 shows the broadcast sequence (BSeq) generated by setting α to the values 0, 0.25, 0.75 (left most table is the first to be broadcast), the corresponding average access. 10 25 50 60 T4 is 60 units and its access time using SBS-0 is equal to A4 + S1 + S4, where (A4 + S1) is the wait time and S4 is the tune time. Different degrees of flexibility in using the subsumption property gave different tradeoffs between the access time and tune time. Setting α to 0, which is the basic LTSF scheduler, gave the lowest tune time but in the meantime it has the highest access time. On the contrary, setting it to 0.75 resulted in the lowest access time and the highest tune time. However, setting α to 0.25 reduced the access time by 21% and the increase in tune time is 7%.

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


Massively parallel forward modeling of scalar and tensor gravimetry data We present an approach to calculate scalar and tensor gravity utilizing the massively parallel architecture of consumer graphics cards. Our parametrization is based on rectilinear blocks with constant density within each blocks.This type of parametrization is well suited for inversion of gravity data or joint inversion with other datasets, but requires the calculation of a large number of model blocks for complex geometries. For models exceeding 10,000 cells we achieve an acceleration of a factor of 40 for scalar data and 30 for tensor data compared to a single thread on the CPU. This significant acceleration allows fast computation of large models exceeding 10 6 model parameters and thousands of measurement sites.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Self-Testing without the Generator Bottleneck Suppose P is a program designed to compute a function f de ned on a group G. The task of self-testing P, that is, testing if P computes f correctly on most inputs, usually involves testing explicitly if P computes f correctly on every generator of G. In the case of multivariate functions, the number of generators, and hence the number of such tests, becomes prohibitively large. We refer to this problem as the generator bottleneck. We develop a technique that can be used to overcome the generator bottleneck for functions that have a certain nice structure, speci cally if the relationship between the values of the function on the set of generators is easily checkable. Using our technique, we build the rst e cient self-testers for many linear, multilinear, and some non-linear functions. This includes the FFT, and various polynomial functions. All of the self-testers we present make only O(1) calls to the program that is being tested. As a consequence of our techniques, we also obtain e cient program result-checkers for all these problems. This paper uni es the preliminary versions which appeared in the The notions of program result-checking, self-testing, and self-correcting as introduced in BK89, Lip91, BLR93] are powerful tools for attacking the problem of program correctness. These methods o er both realistic and e cient tools for software veri cation. Various useful mathematical functions have been shown to have self-testers and self-correctors; some examples can be found in BLR93, BF90, Lip91, CL90, GLR + 91, RS92, ABCG93, RS96, Rub94, BW94] . The theoretical developments in this area are at the heart of the recent breakthrough results on probabilistically checkable proofs and the subsequent results that show non-approximability of hard combinatorial problems.. Suppose we are given a program P designed to compute a function f. Informally, a self-tester for f distinguishes the case where P computes f correctly always from the case where P errs frequently. A result-checker for a function f takes as input a program P and an input q to P , and outputs \PASS" when P correctly computes f always and outputs \FAIL" if P (q) 6 = f(q). Given a program P that computes f correctly on most inputs, a self-corrector for f is a program P sc that uses P as an oracle and computes f correctly on every input with high probability. One method that has been used to get around the generator bottleneck has been to exploit the property of downward self-reducibility BLR93]. The self-testers that use this property, however, have to make (log n) calls to the program depending on the way the problem decomposes into smaller problems. For instance, a tester for the permanent function of n n matrices makes O(n) calls to the program, whereas a tester for polynomial multiplication that uses similar principles makes O(log n) calls. In BLR93] a bootstrap tester for polynomial multiplication that makes O(log n) calls to the program being tested is given. It is already known that matrix multiplication can be tested (without any calls to the program) using a result-checker due to Freivalds Fre79] . The idea of Freivalds' matrix multiplication checker can also be adapted to build testers for polynomial multiplication that make no calls to the program being tested. This approach, however, requires the underlying eld to be large (have at least (2 + )n elements, where n is the degree of the polynomials being multiplied, and is a positive constant). Moreover, this scheme requires the tester to perform polynomial evaluations, whereas ours does not. For Fourier transforms, a di erent result-checker that uses preprocessing has been given independently in BW94].. A Useful Fact. The Organization of the Paper. Section 2 discusses the scheme for linear functions over vector spaces; Section 3 extends the scheme for multilinear functions; Section 4 outlines the approach for non-linear functions.

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


Classification with guaranteed probability of error We introduce a general-purpose classifier that we call the Guaranteed Error Machine, or GEM, and two learning algorithms that are used for the training of GEM, a real GEM algorithm and an ideal GEM algorithm. The real GEM algorithm is for use in real applications, while the ideal GEM algorithm is introduced as a theoretical tool. Differently from most learning machines, GEM has a ternary-valued output, that is besides 0 and 1 it can return an unknown label, expressing doubt. Our central result is that, under general conditions, the statistics of the generalization error of the GEM machine obtained with the ideal GEM algorithm is universal, in the sense that it remains the same, independently of the (unknown) mechanism that generates the data. As a consequence, the user can select a desired level of generalization error and the learning machine is automatically adjusted so as to meet this desired level, and no knowledge of the data generation mechanism is required in this process; the adjustment is achieved by modulating the size of the region where the machine returns the unknown label. The key-point is that no conservatism is present in this process because the statistics of the generalization error is known. We further show that the generalization error of the machine obtained with the real algorithm is always no larger than the generalization error of the machine obtained with the ideal algorithm. Thus, the generalization error computed for the latter can be rigorously used as a bound for the former, and, moreover, it provably provides tight evaluations in typical cases.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


A separation-based UI architecture with a DSL for role specialization This paper proposes an architecture and associated methodology to separate front end UI concerns from back end coding concerns to improve the platform flexibility, shorten the development time, and increase the productivity of developers. Typical UI development is heavily dependent upon the underlying platform, framework, or tool used to create it, which results in a number of problems. We took a separation-based UI architecture and modified it with a domain specific language to support the independence of UI creation thereby resolving some of the aforementioned problems. A methodology incorporating this architecture into the development process is proposed. A climate science application was created to verify the validity of the methodology using modern practices of UX, DSLs, code generation, and model-driven engineering. Analyzing related work provides an overview of other methods similar to our method. Subsequently we evaluate the climate science application, conclude, and detail future work. In software development there are many deadlines, dead ends, long hours, and other difficulties. We believe that a large amount of the accidental complexity (Brooks, 1995) contained in the development of a software project lies at the boundaries between programmers and higher level designers. Our focus was specifically on the gap between User Interface (UI) designers and programmers, which we believe is becoming more complex due to two trends: (i) the desire to attract and keep users is resulting in increasing complexities in the UI and (ii) the diversity of UI platforms is growing due to new devices such as tablets, smartphones, Google glass, and others that will be created in the future. The current status quo of UI development is to allow a UI designer to specify the UI while the programmer uses a UI builder and associated framework to create the UI. We believe that this status quo will become increasingly difficult to deal with due to the aforementioned trends. This exchange is hampered by a communication gap between those two groups, an accidental complexity that we have identified and attempted to rectify in our approach.. We address the UI-Code interface of the traditional separation based UI architecture ( Fig. 1 ) in order to simplify that interface and thereby alleviate a number of difficulties pertaining to developing software. In contrast to other approaches, we attempt to determine the design of the UI-Code interface by basing it on specialized roles rather than solely on the code and some principle such as don't repeat yourself (DRY; Hunt and Thomas, 1999) . Our architecture em- * Corresponding author. Tel.: +1 7753848968.. E-mail addresses: igibbs@cse.unr.edu, igibbs.cse@gmail.com (I. Gibbs), dascalus@cse.unr.edu (S. Dascalu), fredh@cse.unr.edu (F.C. Harris, Jr.).. phasizes specialized roles involving User Experi-35 ence (UX) professional designers and programmers. The architecture and the resulting methodology based on it benefit from automated code generation and are generic and flexible enough to be applied in numerous software development projects. Our main premise is that specialization, combined with a mechanism for integration and bridging knowledge domains such as a Domain Specific Language (DSL) can be particularly effective in software applications with significant UIs.. We combined existing methods and technologies in order to fashion a software development approach to address the difficulties involved with changes of the UI that inevitable occur when UI design and programming are happening concurrently. The techniques used in our approach include Interaction Design (IxD), DSLs, code generation, Graphical User Interface (GUI) builders, and Integrated Development Environment (IDE)s. Due to time constraints, we focused on the tools as they are today and did not attempt to greatly modify them for our specific purposes.. The significance of this work stems first from addressing problems that arise from the current status quo in developing software with a UI. We see four problems that will become worse with trends (i) and (ii). The first two problems are related to the people developing the software: (1) UX professionals are resigned to an advisory role and, (2) communication gaps between UX professionals and programmers cause confusion and loss of productivity. Another set of problems relates to the technology, namely (3) UI dependence upon a framework, and (4) UI creation dependence on knowing programming. Take note that these problems are not orthogonal and that (1) is a result of (4). Our software development methodology addresses and alleviates each of these problems thereby providing a new status quo to deliver developers to a more productive future. The paper is structured as follows. The derivation and description of the approach is presented in Section 2. The creation of an application using the methodology is described in Section 3. Section 4 provides an evaluation of the methodology as compared to similar approaches. The application we created is evaluated in Section 5 with a usability analysis, a code generation assessment, and a comparative analysis. Finally, Section 6 presents our conclusions and future work. This paper is based upon Gibbs (2013) , which can be probed for further details of the proposed methodology. We have presented a new methodology, described its specific concepts and steps, and provided a detailed example of applying the methodology. We have also evaluated the methodology through comparison with related work, usability studies, and analysis of its results. Our assertion (Section 2.1.4) has been that a separation-based UI architecture can enhance the process of software development. A key to our proposed approach is the use of a DSL to bridge the gap between UI design and writing code. Much of the research, development, and testing conducted has been promising regarding the validity of our assertion, but inherently more work remains to be done to fully prove our methodology.. We have shown that there is a clear communication gap between a UX professional and programmer working on a software development project. Our architecture addresses this communication gap and the associated methodology illustrates how to use this architecture in a development process. With regards to problem (4) and its resulting effect of problem (1), we did not find an adequate GUI builder that does not require programming knowledge and therefore were not able to address these problems in this work. The use of a DSL to separate the UI and Code components provides a significant tool to reduce the communication gap and thereby addresses problem (2) of the current status quo. Secondly, the DSL also provides separation of concerns between the UI and Code components and therefore addresses problem (3) of the current status quo.. We expect that our approach contributes to reducing the gulfs of execution and evaluation as described by Norman (2013) . Specifically, they can be reduced because the UX designer knows how the software is expected to behave (by the user), and the programmer knows how to implement the software to make that happen.. In considering future work, we must discuss both work on the architecture and the developer's experience. In the case of the UI component, we did not find a suitably flexible GUI builder that would not require the need to understand code. Having a suitable UI builder could really make our approach easier to implement. Though we have shown how to create the DSL, we still want to find a generic solution for passing the DSL messages back and forth from the UI and Code components. And, with regards to the Code component, we could work with different code generation techniques to find a best of breed. In addition, more testing may further specialize the architecture, with three major roles rather than just two: UX professional, DSL designer, and code programmer. And although our methodology looks promising in the climate science environment, we still need to test to determine if it is effective in other areas.. Ivan Gibbs is an independent researcher and consultant. The University of Nevada, Reno awarded him a BS in Electrical Engineering and a BS in Engineering Physics. After a career in industry he returned to academia and was awarded an MS and recently a Ph.D. in Computer Science and Engineering from the University of Nevada, Reno. He has published several papers on software engineering, model driven engineering, and usability. The approach presented here provides the following benefits. Communication is improved between the UX designers and the programmers by focusing on the DSL as an intermediate language. Increased role specialization helps to increase the productivity of UX designers and programmers, which may improve the product. The method is (i) compatible with web applications by using the DSL as a protocol between UI client and the application server, (ii) accommodates the increasingly diverse UIs such as mobile, voice, tactile, etc. by allowing separate UIs to be created without affecting the application code, (iii) supports testing at the DSL level, and (iv) provides for simple tracing of requirements.. Some drawbacks exist in our proposed approach. First, it requires a UX professional and a programmer. In approaching the problem of platform diversity, the UI will typically not be generalizable such as USer Interface eXtended Markup Language (UsiXML), but would instead be a GUI builder that is simple enough for the UX professional to understand. It may be difficult to use this method if one is dependent upon some software framework such as dotNet, because the use of this method may affect some advantages of any particular software framework. Using the DSL with code generation may affect the ability to finely tune the code (i.e. for special speed or other considerations) or the UI for any specialized purpose beyond its general realization. The DSL now becomes an important artifact in the software application and therefore the DSL needs to be designed well and may require a language designer if things become complex. Certain cross cutting USAPs will still be a problem if they have not been considered during the design phase.. If a team decides to use this methodology they can expect the following impacts on the applications. The long term impact will be improved usability through the UX approach and increased programmer productivity through role specialization and clear communication of application requirements via the DSL. Overall, the team will accomplish UI flexibility through independence from a specific platform, and improved communication between designers and programmers. In the short term, the team may experience confusion in adapting to this methodology, especially if they are not familiar with UX, large-scale design up front methods, DSL creation, or code generation. Breaking from the current framework paradigm, supported by a majority of software producers today, could cause a certain discomfort, as it usually happens when departing from the well known (in our case, departing from the existing frameworks).. We performed a benefit/drawback analysis of the application to help assess its current state of development. The benefits offered by this application are a search UI based on real usability studies, code generation aiding in productivity gains, a favorable comparative analysis, and a simple UI which does not require knowledge outside of the realm of climate science. The drawbacks are a complex build process regarding generation and the need to understand how to write grammars, dependency on Xtext and Eclipse, and the awareness of climate scientists that the tool exists.. Other options are available to users besides using our tool described here. There are many tools that can be used to subset NetCDF files and those in this comparison are a small sample. Some climate scientists may feel great independence and freedom in being able to program and therefore resist changing to a simpler application. If a particular organization is large enough, they may assign a NetCDF expert to do the work of subsetting NetCDF files and consequently there would not be as much of a productivity gain by the use of our application.. There are a few expected impacts of creating a final version of our tool to release to climate scientists. First, we expect that some climate scientists will find the tool helpful. The use of the tool may at first be limited due to awareness of its existence in the world of NetCDF tools. In order for the tool to slowly increase a user base, it will need to be updated with advances in NetCDF files, new operating system platforms, error fixes, and change requests. To place our work in the landscape of related software development methods, we surveyed prior work in the area of UI separation based architectures and UI creation techniques. Our approach was compared to related efforts in regards to user interaction and UI creation.

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


Declarative aspects of memory management in the concurrent collections parallel programming model [8] is a declarative parallel language that allows the application developer to express their parallel application as a collection of high-level computations called steps that communicate via single-assignment data structures called items.A CnC program is specified in two levels. At the bottom level, an existing imperative language implements the computations within the individual computation steps. At the top level, CnC describes the relationships (ordering constraints) among the steps. The memory management mechanism of the existing imperative language manages data whose lifetime is within a computation step. A key limitation in the use of CnC for long-running programs is the lack of memory management and garbage collection for data items with lifetimes that are longer than a single computation step. Although the goal here is the same as that of classical garbage collection, the nature of problem and therefore nature of the solution is distinct. The focus of this paper is the memory management problem for these data items in CnC.We introduce a new declarative slicing annotation for CnC that can be transformed into a reference counting procedure for memory management. Preliminary experimental results obtained from a Cholesky example show that our memory management approach can result in space reductions for CnC data items of up to 28× relative to the baseline case of standard CnC without memory management. Parallel computing has become mainstream due to the rapid increase in the adoption of multicore processors. Unlike previous 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. DAMP'09, January 20, 2009, Savannah, Georgia, USA. Copyright c 2009 ACM 978-1-60558-419-5/09/01. . . $5.00 generations of hardware evolution, this trend will have a major impact on existing and future software. A highly desirable solution to the multicore software productivity problem is to introduce highlevel declarative programming models that are accessible to developers who are experts in different domains but lack deep experience with imperative parallel programming. In previous work [1] , we described the Concurrent Collections (CnC) programming model, which builds on past work on TStreams [9] . In the CnC model, the parallel structure of a program is described declaratively in terms of computation steps that communicate via data items that satisfy the dynamic single assignment property. A complete parallel program can be obtained by using a sequential or parallel imperative language to implement individual computation steps; however, the interaction among computation steps still remains side-effect-free thereby making parallelization and fault tolerance easy to support.. In [1] , we presented parallel performance results for two different runtime implementations of CnC, one based on C++ and the Intel Threading Building Blocks [4] and the other based on Java and X10 [3] . Though the results demonstrated the feasibility of obtaining scalable parallel speedup with the CnC approach, they also highlighted a key limitation of CnC implementations, viz., the lack of automatic memory management and garbage collection for data items. This limitation arises from the use of data items as a single-assignment data interface among computation steps. In particular, in standard CnC when a data item is made available to other computation steps, it is unclear how many computation steps in the future may need to use that data item. In fact, some of these computation steps may not yet exist. Therefore it is unclear when the data item becomes ready for garbage collection. This is a serious limitation for long-running programs because the space requirement for data items can grow unboundedly as a CnC program executes.. Standard garbage collection approaches are insufficient to solve the memory management problem in the CnC programming model, because references (tags) to data items can be created dynamically by future computation steps performing get operations. Unless the runtime system is absolutely certain that no future steps will create a reference to the data item, it cannot free the memory occupied by it.. The approach proposed in this paper is to introduce declarative annotations in CnC that indicate which computation step will read a specific data item. These are checked at runtime for potential violations. These slicing annotations are converted into referencecounting procedures that can be used to identify dead data items. A single data item may be a scalar or may consist of a large data However, the only references permitted to a data item are through get operations, thus making the problem of identifying dead CnC data items different from the classical garbage collection problem. Our preliminary experimental results show that our memory management approach can result in space reductions for data items of up to 28× relative to the baseline case of standard CnC without memory management, for the Cholesky example studied in this paper.. The rest of the paper is organized as follows. Section 2 summarizes the CnC model from past work. Section 3 introduces a new declarative slicing annotation that serves as a key input for automatic memory management. Section 4 defines the Memory Management problem statement for CnC, and Section 5 describes our solution. Section 6 contains preliminary experimental results, and Section 7 contains our conclusions. In this paper, we addressed the memory management problem for item collections in the Concurrent Collections (CnC) programming model. We introduced a new declarative slicing annotation for CnC that can be automatically transformed into a reference counting function, which can be further used for memory management. Preliminary experimental results obtained from a Cholesky factorization example show that our memory management approach can result in space reductions for item collections of up to 28× relative to the baseline case of standard CnC without memory management.. There are many opportunities for future work to further extend the memory management approach described in this paper. We plan to extend the approach to handle a broader class of CnC applications. We will explore ways of compactly indicating that a step instance (with a specific tag) will never be executed in the future; that information can be used to improve the precision of the garbage collection approach presented in this paper. A hierarchical approach to specifying CnC programs can be explored that enables all sub-nodes within a hierarchical node to be collected, whenever a super-node's reference count becomes zero. Finally, we intend to explore other applications of the slicing annotation, such as copy elimination [7, 5] , to further improver the performance of CnC programs.

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