Transform Domain Analysis of DES DES can be regarded as a nonlinear feedback shift register (NLFSR) with input. From this point of view, the tools for pseudo-random sequence analysis are applied to the S-boxes in DES. The properties of the S-boxes of DES under Fourier transform, Hadamard transform, extended Hadamard transform and Avalanche transform are investigated. Two important results about the S-boxes of DES are found. The rst result is that nearly two-thirds of the total 32 functions from GF(2 6 ) to GF(2) which are associated with the 8 S-boxes of DES have the maximal linear span 63, and the other one-third have linear span greater than or equal to 57. The second result is that for all S-boxes, the distances of the S-boxes approximated by monomial functions has the same distribution as for the S-boxes approximated by linear functions. Some new criteria for the design of permutation functions for use in block cipher algorithms are discussed.Index Terms DES, nonlinear feedback shift register, transform domain analysis, block cipher. The Data Encryption Standard (DES) is a block cipher involving 64-bit data encryption with a 56-bit key, which was adopted by the U.S. National Institute of Standards and Technology in 1976. DES has been widely used in bank activities and Internet communications. The security of DES has been extensively investigated by many researchers 2, 15, 3, 4, 26, 6, 23, 9, 5, 20] . DES can be implemented in hardware as well as software.. In this paper, we will consider DES as a nonlinear feedback shift register (NLFSR) with input. From this point of view, we will apply the tools for pseudo-random sequence analysis to the S-boxes in DES, i.e., the feedback function when DES is regarded as a NLFSR with input. We will exhibit several new properties of the S-boxes of DES and discuss some new criteria for design of block cipher algorithms.. Concerning the analysis of shift register sequences, we have three kinds of known transforms: the Fourier transform, the Hadamard transform and the Avalanche transform. Pieprzyk 19] , Nyberg 18] , and Webster and Tavares 26] discussed the nonlinearity and the Strict Avalanche Criterion (SAC) of a function from Z n 2 to Z m 2 . For a function from Z n 2 to Z m 2 , the Fourier transform represents its linear span property, the Hadamard transform re ects its nonlinearity, and the Avalanche transform shows whether it satis es SAC. In analysis of shift register sequences 7], we consider that all m-sequences are equivalent under the decimation operation for elements in a sequence. We apply this idea to approximate the S-boxes in DES, i.e., we use monomial functions instead of linear functions to approximate S-boxes. We call this transform an extended Hadamard transform whose de nition will be given in Section 4. We found that distributions of the extended Hadamard transform spectra of all S-boxes are the same as the distributions of the Hadamard transform spectra of the S-boxes. This paper is organized as follows. In Section 2, we present some basic concepts that will be used thoughtout this paper. In Section 3, we show the Fourier transform spectrum of the S-boxes of DES, which gives that nearly two-thirds of the total of 32 functions from GF (2 6 ) to GF (2) , which are associated with the 8 S-boxes of DES, have the maximal linear span value 63. In Section 4, rst we introduce the extended Hadamard transform for a function from GF(2 n ) to GF(2), then we discuss new criteria for design of permutation functions for use in block cipher algorithms, and we present Hadamard transform spectra, extended Hadamard transform spectra and Avalanche transform spectra of the S-boxes of DES.. Remark 1 RC5, which was invented by Rivest 21] in 1994, is also a block cipher with parameters that can be easily switched into a mode of 64-bit, or 128-bit, or 256-bit data encryption. RC5 is widely used in Internet communications 24]. The security of RC5 was discussed at recent Crypto conferences 10, 12] . Until now, RC5 has been implemented in software. The approach developed in this paper can be applied to RC5, since RC5 has the same NLFSR structure as DES, only di ering in their feedback functions. So, RC5 can be easily implemented in hardware in terms of its NLFSR architecture. For RC5, the feedback function is a function from a ring Z 32 to Z 32 (here we assume that it is in a 64-bit mode). But it can be transformed into a function from Z 32 2 to Z 32 2 , or equivalently, a function from GF (2 32 ) to GF (2 32 ). Thus an analysis of transform domain properties of the feedback function of RC5 can be partially done by computation. We will discuss this in a separate paper. Other block ciphers widely used in

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


GA-fuzzy modeling and classification: Complexity and performance Abstract-The use of genetic algorithms (GAs) and other evolutionary optimization methods to design fuzzy rules for systems modeling and data classification have received much attention in recent literature. Authors have focused on various aspects of these randomized techniques, and a whole scale of algorithms have been proposed. We comment on some recent work and describe a new and efficient two-step approach that leads to good results for function approximation, dynamic systems modeling and data classification problems. First fuzzy clustering is applied to obtain a compact initial rule-based model. Then this model is optimized by a real-coded GA subjected to constraints that maintain the semantic properties of the rules. We consider four examples from the literature: a synthetic nonlinear dynamic systems model, the iris data classification problem, the wine data classification problem, and the dynamic modeling of a diesel engine turbocharger. The obtained results are compared to other recently proposed methods. Many approaches to fuzzy rule-based modeling by means of evolutionary methods or other data-driven techniques have been published. The variety of possibilities and automated algorithms has often resulted in unnecessarily complex models that more resembles black-box approaches.. We have described a method to construct compact and transparent, yet accurate fuzzy rule-based models of the TSK type. Fuzzy clustering in the product space of the models inputs and output is applied to obtain an initial fuzzy rule base. This helps to ensure a qualitatively tractable rule base where the rules are local models that describe important regions in the systems input-output space. To increase the quantitative properties of the initial model we have proposed a real-coded GA that simultaneously optimizes the parameters of the antecedent membership functions and the rule consequents. The tractable structure of the initial model is maintained by constraining the search space of the GA. In cases where transparency issues are less important, the constraints on the GA search space can be relaxed. We also showed that successive application of rule-base simplification and GA-based optimization can be considered to further reduce the model complexity. In this case, the proposed constrained GA was capable of efficiently correcting for the decrease in model accuracy introduced by the simplification.. The proposed modeling approach was successfully applied to four problems known from the literature: the modeling of a synthetic nonlinear dynamic plant, the iris data classification problem, the wine data classification problem, and the modeling of a diesel engine turbocharger. Quantitatively, the obtained models were comparable to the best results reported in the literature. However, the obtained models used fewer rules than other fuzzy models reported in the literature. Moreover, these results were obtained with simple triangular membership function constructs in order to allowed for linguistic interpretation of the models term set. Even better model accuracy can be obtained by using smooth membership functions and by relaxing the constraints on the GA search space.

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


eXamine:

Exploring

annotated

modules

in

networks

Background:

Biological

networks

have

a

growing

importance

for

the

interpretation

of

high-throughput

"omics"

data.

Integrative

network

analysis

makes

use

of

statistical

and

combinatorial

methods

to

extract

smaller

subnetwork

modules,

and

performs

enrichment

analysis

to

annotate

the

modules

with

ontology

terms

or

other

available

knowledge.

This

process

results

in

an

annotated

module,

which

retains

the

original

network

structure

and

includes

enrichment

information

as

a

set

system.

A

major

bottleneck

is

a

lack

of

tools

that

allow

exploring

both

network

structure

of

extracted

modules

and

its

annotations.

Results:

This

paper

presents

a

visual

analysis

approach

that

targets

small

modules

with

many

set-based

annotations,

and

which

displays

the

annotations

as

contours

on

top

of

a

node-link

diagram.

We

introduce

an

extension

of

self-organizing

maps

to

lay

out

nodes,

links,

and

contours

in

a

unified

way.

An

implementation

of

this

approach

is

freely

available

as

the

Cytoscape

app

eXamine

Conclusions:

eXamine

accurately

conveys

small

and

annotated

modules

consisting

of

several

dozens

of

proteins

and

annotations.

We

demonstrate

that

eXamine

facilitates

the

interpretation

of

integrative

network

analysis

results

in

a

guided

case

study.

This

study

has

resulted

in

a

novel

biological

insight

regarding

the

virally-encoded

G-protein

coupled

receptor

We

have

proposed

a

visualization

approach

that

enables

the

analysis

of

small

and

annotated

network

modules,

and

have

implemented

this

in

the

Cytoscape

app

eXamine.

Our

approach

displays

sets

as

contours

on

top

of

a

node-link

layout.

We

have

introduced

an

extension

to

the

self-organizing

maps

algorithm

to

lay

out

module

edges

and

annotation

sets

in

a

unified

way.

The

added

value

of

our

approach

has

been

demonstrated

in

a

case

study

of

a

signaling

module,

in

which

a

novel

hypothesis

about

the

way

induces

β-catenin

signaling

has

been

derived.

The

analysis

tasks

described

in

the

background

section

guided

the

design

decisions

that

we

have

taken

in

the

implementation

of

eXamine.

These

decisions

are

motivated

via

the

analysis

cycles

of

the

case

study..

Overview.

The

benefit

of

a

spacious

annotation

set

overview

follows

from

the

first

cycle

in

which

the

categorized,

ranked,

and

legible

annotation

lists

enable

the

fast

recognition

of

two

familiar

and

significantly

represented

pathways

(task

Subsequent

tagging

of

the

two

pathways

reveals

their

module

genes

(task

and

concisely

drawn

contours

emphasize

the

division

of

the

module

into

two

parts

and

some

additional

genes

that

are

not

part

of

the

pathways.

An

annotation

shared

by

and

Met

(task

The

same

observations

could

have

been

made

from

an

annotation

table.

However,

the

topological

characteristics

of

these

three

genes

would

have

been

harder

to

discern,

i.e.,

their

direct

interaction

with

(task

This

also

applies

to

other

set

visualizations

without

depiction

of

network

topology,

such

as

Venn

or

Euler

diagrams,

as

shown

in

Figure

and

(b)

To

make

the

topology

of

the

gene

interactions

more

explicit,

a

node-link

visualization

could

be

used.

For

example,

Figure

shows

the

module

laid

out

by

one

of

the

built-in

force-directed

layout

algorithms

of

Cytoscape

with

all

five

annotation

sets

superimposed

as

BubbleSets.

However,

the

structure

of

the

annotation

sets

is

hard

to

discern,

and

it

is

not

immediately

clear

that

nodes

belonging

to

the

β-catenin

binding

set

(blue

shape)

form

a

proper

subset

of

the

Adherens

junction

set

(yellow

shape)..

Integration.

The

third

cycle

shows

the

importance

of

gene

expression

values

(task

which

is

not

limited

to

the

interpretation

of

genes

in

isolation

but

along

multiple

genes,

their

interactions,

and

shared

annotation

sets.

The

importance

of

integrated

support

for

all

analysis

tasks

follows

from

the

remaining

cycles

where

multiple

deductions

are

made

in

succession

via

multiple

tasks.

Here,

tagging

relevant

pathways

enables

the

analyst

to

build

up

a

context

for

making

deductions..

Limitations.

eXamine

is

designed

to

accurately

convey

small

and

annotated

modules,

consisting

of

up

to

about

thirty

proteins

and

categories

of

up

to

about

twenty

annotations

(note

that

these

limits

are

not

hard).

The

case

study

shows

that

common

analysis

tasks

for

these

modules

are

covered.

Scalability

is

a

concern

as

our

approach

focuses

on

small

modules

to

enable

accurate

depiction

of

sets

contours;

it

is

not

possible

to

construct

a

comprehensive

layout

if

the

module

consists

of

hundreds

of

proteins

or

if

there

are

dozens

of

annotation

sets

to

visualize

at

the

same

time.

Both

aspects

make

visual

analysis

ineffective.

This

is

a

natural

limitation

of

any

visualization

approach

based

on

node-link

diagrams

and

set

contours,

however..

Our

technique

relies

on

a

focus

and

context

approach,

in

which

the

network

and

set

system

has

been

pruned

down

to

the

most

relevant

components

first.

Communicating

small-scale

information

is

given

priority

to

support

hypothesis

generation

at

the

level

of

individual

proteins

and

their

interactions,

as

follows

from

the

targeted

analysis

tasks.

Nonetheless,

the

tool

is

capable

of

visualizing

modules

of

up

to

a

hundred

proteins,

albeit

with

less

legibility

of

interactions

and

annotations..

The

integration

of

eXamine

into

Cytoscape

mitigates

many

scalability

issues.

Cytoscape,

for

example,

provides

a

global

view

of

the

network,

in

which

the

user

can

zoom

in

on

smaller

subnetworks

for

more

in-depth

analysis

by

eXamine.

In

addition,

the

integration

into

Cytoscape

provides

access

to

further

analysis

algorithms..

The

extended

SOM

algorithm

embeds

an

annotated

module

to

reflect

its

topology,

i.e.,

the

distances

between

its

proteins

based

on

common

interactions

and

annotations.

This

does

not

guarantee

optimal

aesthetics

however,

and

unnecessary

link

and

contour

intersections

can

sometimes

occur.

The

analysis

tasks

targeted

by

eXamine

are

not

much

hampered

by

such

intersections

since

all

interactions,

annotations,

and

their

interplay

remain

pronounced.

However,

to

communicate

analysis

results,

aesthetics

might

need

further

improvement.

This

could

be

done

by

weighing

aesthetic

criteria

such

as

the

number

of

intersections

and

shape

complexity

against

each

other,

and

formulating

this

as

a

combinatorial

optimization

problem.

The

associated

algorithms

are

often

complex,

and

it

is

not

so

easy

to

integrate

them

into

an

interactive

system.

Application

to

other

domains.

eXamine

is

not

limited

to

the

analysis

of

enriched

protein

modules

nor

to

data

from

the

biological

domain.

It

can

be

applied

to

any

small

network

module

that

is

accompanied

by

a

set

system,

such

as

a

social

circle

that

consists

of

people,

their

relationships,

and

common

interests.

Network

visualization

and

tools.

Many

advanced

techniques

for

the

visualization

of

network

topology

have

been

developed

but

few

have

been

transferred

to

readily

available

tools.

On

the

other

hand,

there

are

many

tools

for

interpreting

and

exploring

biological

networks

including

the

popular

open

source

platforms

Cytoscape

and

PathVisio

However,

these

currently

provide

only

limited

capability

to

visualize

annotated

modules.

PathVisio

is

a

pathway

analysis

approach,

in

which

sets

are

restricted

to

subsets

of

static,

pre-defined

individual

pathways,

and

set

membership

is

conveyed

via

node

colors.

Cytoscape's

group

attributes

layout

can

be

used

to

visualize

partitions

by

showing

disjoint

parts

in

separate

circles,

but

it

does

not

support

overlapping

sets.

The

Venn

and

Euler

diagram

app

for

Cytoscape

does

support

overlapping

sets,

but

it

can

handle

only

four

at

the

same

time

(see

Figures

and

(b)

In

this

app,

network

and

sets

are

visualized

separately:

set

membership

is

conveyed

by

selecting

a

set

and

its

corresponding

nodes

are

highlighted

in

Cytoscape's

network

view.

The

RBVI

collection

of

plugins

facilitates

creation

and

editing

of

Cytoscape

groups,

and

provides

a

group

viewer

that

relies

on

aggregation

of

groups

into

meta-nodes.

Figure

Note

that

it

is

not

immediately

apparent

that

the

nodes

in

the

β-catenin

set

(blue)

form

a

subset

of

Adherens

junction

(yellow),

because

the

BubbleSet

approach

applies

no

explicit

nesting

of

subsets.

These

meta-nodes

can

be

visualized

as

standard

nodes,

as

nodes

containing

embedded

networks,

or

as

charts.

This

approach,

however,

does

not

allow

for

visualization

of

overlapping

sets..

Set

system

visualization.

In

the

information

visualization

field,

Euler

diagrams

are

used

for

the

intuitive

visualization

of

set

systems

in

which

items

belonging

to

the

same

set

are

denoted

by

contours.

Variants

of

these

approaches

visualize

sets

over

items

with

predefined

positions,

e.g.,

over

a

given

node-link

visualization

of

a

network.

These

methods

range

from

connecting

these

items

by

simple

lines

(LineSets)

via

colored

shapes

that

are

routed

along

the

items

(Kelp

Diagrams)

and

contours

around

the

items

(BubbleSets,

see

Figure

three(c))

to

hybrid

approaches

(KelpFusion)

Visualizing

an

annotated

module,

however,

requires

an

integrated

layout

of

both

its

network

and

set

system

topologies,

which

is

not

possible

with

these

approaches.

Euler

diagram

methods

focus

on

the

layout

of

set

relations

at

the

expense

of

network

topology.

Likewise,

laying

out

the

network

before

superimposing

set

relations

will

emphasize

network

topology

to

the

detriment

of

the

set

system.

Some

techniques

exist

that

provide

such

integrated

layouts

and

which

include

aesthetic

concerns

and

design

of

visual

metaphors

However,

these

approaches

assume

constraints

on

the

network

and

set

system

topologies,

e.g.,

strict

partitions

and

no

overlapping

sets,

and

they

are

therefore

not

applicable

to

our

problem.

We

have

implemented

the

technique

in

a

Cytoscape

app,

and

have

emphasized

simplicity

of

interaction

and

visual

presentation

in

the

design.

The

available

sets

are

sorted

by

significance

and

listed

in

the

set

overview

on

the

left,

where

the

significance

of

a

set

is

visualized

as

a

circle,

scaled

logarithmically

and

accompanied

by

its

scientific

exponent

as

text

(task

The

user

may

select

sets

for

inclusion

in

the

annotated

network

visualization

to

the

right-see

Figure

(c).

All

described

functionalities

can

be

used

at

interactive

speeds

for

networks

up

to

dozens

of

nodes,

edges,

and

active

sets,

including

laying

out

the

network

with

the

RSOM

training

algorithm.

Geometric

operations

on

the

contours,

such

as

dilations

and

erosions,

are

performed

via

Java

Topology

Suite

Interaction.

Interactions

consist

of

simple

mouse

actions

(see

the

video

in

the

Supplemental

Material).

The

inclusion

of

a

set

in

the

network

visualization

is

toggled

via

the

set's

label

in

the

set

overview

or

its

contour

in

the

network

visualization

(task

Additional

information

about

a

set

or

node

may

be

obtained

via

a

hyperlink

to

a

web

page

provided

in

the

input

data,

enabling

quick

access

to

external

information

sources

such

as

the

KEGG

website.

This

approach

keeps

the

tool

flexible,

i.e.,

the

tool

itself

does

not

have

to

be

altered

every

time

a

new

kind

of

set

or

node

from

a

different

database

is

loaded..

The

links

of

a

node

are

emphasized

when

it

is

hovered

over

(see

Figure

(a))

such

that

its

direct

neighborhood

can

be

discerned

from

its

surroundings

(task

Moreover,

sets

that

contain

the

hovered

node

are

highlighted

as

well.

Likewise,

links

can

be

hovered

to

highlight

their

nodes

and

common

sets.

Vice

versa,

the

contours

of

a

set

are

emphasized

and

its

comprising

nodes

are

highlighted

when

it

is

hovered

over

(see

Figure

This

provides

immediate

feedback

to

the

user

about

node-set

relations

(tasks

and

without

having

to

select

a

set

and

consequently

changing

the

layout

of

the

network

visualization..

The

lists

of

annotations

sets

can

be

expanded

and

collapsed

by

clicking

on

their

headers,

and

scrolled

downward

to

sets

of

lower

significance

by

turning

the

mouse

wheel.

The

set

circles

that

convey

significance

remain

(a)

(b)

visible

at

all

times,

grouping

at

the

list

top

and

bottom,

to

guarantee

the

depiction

of

all

set

memberships

when

a

node

is

hovered.

The

user

can

adjust

the

dominance

of

a

set

by

spinning

the

mouse

wheel

while

hovering

over

either

the

set's

label

in

the

set

overview

or

contour

in

the

network

visualization.

This

enables

the

user

to

give

a

set

a

central

role

in

the

layout

(see

Figure

or

to

remove

any

of

its

influence

(see

Figure

All

changes

to

the

visualization

caused

by

interaction

are

animated.

Colors

and

positions

of

items

are

altered

gradually.

Link

layout

changes

are

animated

by

interpolating

their

control

points,

while

contour

layouts

are

handled

by

fading

out

the

old

contour

and

fading

in

the

new

contour.

The

use

of

layout

preservation,

as

described

previously,

in

combination

with

animations

helps

to

preserve

the

user's

mental

map.

Color.

Unique,

distinguishable

colors

are

derived

from

Color

Brewer

palettes

and

assigned

to

annotation

sets

in

a

cyclic

manner

to

avoid

assigning

the

same

color

consecutively.

In

addition,

large

differences

in

contrast

are

avoided.

For

example,

text

and

set

outlines

are

colored

dark

gray

instead

of

black

to

reduce

their

visual

dominance.

Black

is

only

used

when

items

are

hovered

over

or

highlighted

such

that

they

attract

attention,

as

shown

in

Figure

Moreover,

labels

of

selected

sets

(in

the

set

overview)

are

emphasized

with

a

more

intense

black

color

to

ensure

that

they

are

readable

in

a

colored

surrounding.

Node

labels

have

a

white

background

to

make

sure

that

their

text

is

legible

when

drawn

on

top

of

a

set

ribbon

with

a

dark

color.

Likewise,

links

have

halos

that

make

them

easier

to

distinguish

and

their

intersections

more

pronounced..

Cytoscape

integration.

eXamine

is

tightly

integrated

into

Cytoscape.

Cytoscape's

group

functionality

is

used

to

represent

sets

and

we

rely

on

the

table

import

functionality

for

importing

both

the

set

and

node

annotations.

The

user

is

also

able

to

group

sets

into

different

categories.

The

Cytoscape

node

fill

color

map

attribute

is

used

to

color

the

nodes

in

eXamine

according

to

gene

expression

score

(task

The

user

therefore

has

the

freedom

to

define

the

desired

color

map

via

Cytoscape.

The

user

can

invoke

eXamine

on

the

currently

selected

nodes

via

the

eXamine

control

panel.

There

the

user

can

select

which

categories

to

show

as

well

as

the

number

of

sets

per

category.

In

addition,

the

user

can

specify

that

the

Cytoscape

selection

should

be

updated

to

match

the

union

or

intersection

of

the

selected

sets

in

eXamine.

This

enables

the

use

of

eXamine

with

any

kind

of

module

extraction

algorithm

and/or

filter

method

in

Cytoscape,

which

includes

manual

node

selection.

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


Computing Agents for Decision Support Systems In decision support systems, it is essential to get a candidate solution fast, even if it means resorting to an approximation. This constraint introduces a scalability requirement with regard to the kind of heuristics which can be used in such systems. As execution time is bounded, these algorithms need to give better results and scale up with additional computing resources instead of additional time. In this paper, we show how multi-agent systems can fulfil these requirements. We recall as an example the concept of Evolutionary MultiAgent Systems, which combine evolutionary and agent computing paradigms. We describe several possible implementations and present experimental results demonstrating how additional resources improve the efficiency of such systems. The need to gather and analyse vast amounts of information from numerous sources has grown in importance. Such data is often a basis for simulations and computations that support decision making. It may be needed to run many computing tasks, in order either to test different parameters in a model or to verify a statistical hypothesis. An exhaustive search for optimal solutions to a decision making problem is usually time-consuming and thus not acceptable in real-time conditions. Instead, metaheuristics may quickly provide good-enough options to be further considered in the decision making process [1] .. Examples of use cases with real-time constrains, where a quick approximated solution may be better than an outdated optimal one, may include:. • Portfolio optimisation -a decision support system can apply different models to the available market data and allow the user to quickly react to arising trends [2] .. • Crisis management -in crisis situations, such as fire outbreaks, flooding or earthquakes, intensive simulations are required in order to suggest possible evacuation routes or to assign rescue units to tasks. Geographical information usually needs to be considered, yielding optimisation problems similar to transportation-related ones [3] .. • Production planning -decision support systems can help in scheduling work, rescheduling production plans in case of hardware failures, implementing just in time strategies or balancing conflicting goals (e.g. high system throughput vs low machinery usage) [4] .. Metaheuristics may still require a significant computational power if the acceptable solution is to be found in a reasonable time. For this purpose, largescale infrastructure is usually used, such as clusters, grids or clouds. To fully benefit from this computational power, it is required to appropriately plan their development and deployment, along with adequate tools and careful testing.. Because of its intrinsic decentralisation [5] , the agent approach is well suited to design scalable distributed models and has been applied in various decision support systems. This approach may be summarised as the introduction of artificial intelligence techniques into the system, transforming it from a passive tool into an active collaborator in decision making. A number of such caseoriented systems have been proposed and verified in practice [6, 7] .. Well-known general-purpose agent-based development tools (such as JADE [8] , RePast [9] or Madkit [10] ) may not be the best choice to implement such computational intensive simulations, when throughput and scalability are more important than code migrations or FIPA-compliant communication. Therefore, over the last 10 years, we have been involved in the development of several alternative platforms dedicated to large scale agent-based simulations and computations [11, 12, 13] .. In this work, we discuss the implementation aspects of using computing agents in large-scale environments, with a focus on performance. We compare different approaches to agent execution and parallelism, based on the metaheuristic called evolutionary multi-agent systems (EMAS), which is a hybrid of agent-oriented and evolutionary-based computing [14] . We introduce the concept of meeting arenas, which allow to design more efficient and scalable multi-agent systems. Nevertheless, we show that explicit parallelism, when each agent is mapped onto a thread, can be much less effective than a simple but optimised sequential implementation. Finally, we show that such agent-based metaheuristics can be easily scaled with additional computational resources.. We start the paper with a discussion on the applicability of the agentoriented paradigm and metaheuristics in decision support systems (Section 2), along with an EMAS example. In Section 3, we introduce the most common approaches to parallelism in agent-oriented computing and follow with a review of popular agent platforms in Section 4. We describe in Section 5 how to implement an evolutionary multi-agent system using two different approaches-a synchronous and asynchronous one. Finally, we conclude the paper by comparing the performance and scalability of both approaches in Section 6. Metaheuristics can be valuable in decision support systems with time constraints. We discussed in this paper how the agent approach can be applied to these systems in order to build efficient and scalable software. We described the concept of evolutionary multi-agent systems, an example of a metaheuristic combining agent-based and evolutionary techniques.. The main goal of our work was to investigate the existing methods of building agent software and suggest new directions of development. In particular, we wanted to see if the dominant approach, which considers every agent as a unit of concurrency, is really efficient in computational intensive simulations.. To that purpose, we developed two alternate implementations of an evolutionary multi-agent system which generalise the trends in existing agent software. We introduced the idea of meeting arenas, an agent-based realisation of the Mediator design pattern which allow to efficiently structure multi-agent systems. We applied this concept to two versions of the algorithm: an asyn- chronous one, where every agent is a fully independent entity, and a synchronous one which treats agents as simple data structures. Our experiments revealed that an asynchronous implementation, which may feel more the agent way, is nearly an order of magnitude less efficient than a synchronous one based on the same design. Several prototypes in other technologies supported these results. Further experiments on the synchronous implementation demonstrated that it can easily be scaled in a distributed setting, so that the efficiency of the algorithm increases when new nodes are added to the computation.. Therefore, we showed that the prevailing approach in existing agent plat- forms is not best suited in this particular class of applications. Instead, there is still room for improvement in the field of agent software dedicated to intensive simulations and computations. To that purpose, the concept of meeting arenas introduced in this paper allow to retain the expressive power of existing agent-based algorithms but can lead to much more efficient synchronous implementations.. In the nearest future, we want to see if concepts used in the functional programming paradigm could be more suited or more efficient in multi-agent software than the dominant object-oriented approach. Future work could also tell what kind of parallelism could be efficiently introduced in populations of agents. In particular, it would also be interesting to see how the Map/Reduce paradigm could be used to develop efficient massive multi-agent systems with hundreds of thousands of agents.. an assistant professor at the Department of Computer Science of AGH-UST. His research focuses on intelligent software systems, particularly using agent technology and evolutionary algorithms, but also other soft computing techniques.

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


Mining and monitoring patterns of daily routines for assisted living in real world settings In this paper we demonstrate a fully automated approach for discovering and monitoring patterns of daily activities. Discovering patterns of daily activities and tracking them can provide unprecedented opportunities for health monitoring and assisted living applications, especially for elderly and people with memory deficits. In contrast to most previous systems that rely on either pre-selected activities or labeled data for tracking and monitoring, we use an automated approach for activity discovery and recognition. We present a mining method that is able to find natural activity patterns in real life data, as well as variations of such patterns. We will also show how the discovered patterns can be recognized and monitored by our recognition component. In addition, we provide a visualization component to help the care-givers to better understand the activity patterns and their variations. To validate our algorithms, we use the data collected in two smart apartments. The growing aging population of baby boomers and its associated health care costs have resulted in an increasing interest in assisted living technologies based on ubiquitous computing and ambient intelligence. An estimated 9% of adults age 65+ and 50% of adults age 85+ need assistance with everyday activities, and the resulting cost for governments and families is daunting. An example of assistive 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. IHI '10, November 11-12, 2010 , Arlington, Virginia, USA. Copyright 2010 ACM 978-1-4503-0030-8/10/11 ...$10.00.. living systems are the remote health monitoring and intervention systems that monitor and track the activities of daily living (ADL) [21] of elderly with memory deficits. ADL, a term used in medicine and elderly care refers to the basic self-care activities, such as eating, dressing, cooking, drinking, and taking medicine. The ability to perform ADLs independently and completely provides a measurement of the functional status of a person [15] and are essential activities to complete on a regular basis if a person wants to live independently in their own home. Therefore automating the recognition of activities is an important step toward monitoring the functional health of the resident. When surveyed about assistive technologies, family caregivers of Alzheimer's patients ranked activity identification and tracking at the top of their list of needs [22] . Additionally, such systems can provide timely prompts to the resident in case the resident has difficulty completing a task or remembering what to do next. Such systems allow elderly and people with special needs to live more independently at the comfort of their own home, while reducing the burden of constant monitoring for the care-givers, and reducing health care costs and invested time.. A plethora of recent advancements in different fields have made it possible to build such "smart environments" for assisted living, including sensor technology, data mining and machine learning techniques, combined with the insights from psychologists and practitioners [31, 4] . A smart environment is usually equipped with different types of sensors such as motion sensors, temperature sensors, and contact switch sensors that allow the system to collect data on inhabitants activities and environmental situations. There have been a number of smart environment physical testbeds such as the CASAS project [19] , the MavHome project [5] , the Gator Tech Smart House [11] , the iDorm [6] , and the Georgia Tech Aware Home [1] . Some of the smart environments testbeds are specifically geared towards providing assisted living technologies, such as the CASAS project [19] .. Besides the physical infrastructure, there also have been a number of machine learning methods for discovering, modeling and recognizing activities. The majority of activity modeling and recognition algorithms are supervised methods. Supervised methods assume that we know the form of activities in terms of sensor events and therefore we can use training examples to train the model [28] . This requires that we have access to annotated data where each sensor event appearing in the data is labeled with its activity label. The supervised activity recognition methods range from simple methods such as naive Bayes [2] based on sensor events in-dependence assumption, to more recent and sophisticated methods such as conditional random fields [17] that model the sensor events as probabilistic sequences. Other notable supervised methods include decision trees [14] , Markov models [13] , and dynamic Bayes networks [12] . There are a number of problems with the supervised approach. First, the assumption of consistent pre-defined activities does not hold in reality. Due to physical, mental, cultural, and lifestyle differences [30] not all individual perform the same set of tasks. Even for the same pre-defined activity, different individuals might perform it in vastly different ways, making the reliance on a list of pre-defined activities impractical due to the inter-subject variability. Therefore data needs to be annotated for each individual and each task. However annotating and hand labeling the data is a very time consuming and laborious task. Therefore unsupervised approaches seem to be more suitable for activity recognition in a normal day-to-day setting.. In contrast to supervised methods, unsupervised method require no training example and no labeled data, rather they look for interesting patterns in the data. There have been a few unsupervised activity discovery and recognition methods. Gu et al. [8] look for frequent sensor sequences. Pei et al. [16] mine discontinuous activity patterns, and in our previous works we have shown methods to find mixed frequentperiodic activity patterns [19] . Most of these approaches either do not discover discontinuous patterns as well as the patterns that their order varies from occurrence to occurrence. But the erratic nature of human activities requires a method that is able to find discontinuous patterns and also their variations. For example, Hayes, et al. [10] found that variation in the overall activity level at home was correlated with mild cognitive impairment. This highlights the fact that it is important for a caregiver to be able to recognize and monitor all the activities and their variations which are performed regularly by an individual in a daily environments.. In this paper we propose an unsupervised method for finding discontinuous and varied-order activity patterns in a real world setting as part of the CASAS project [19] . Previously we have introduced a method called DVSM [20] that is able to find discontinuous and varied order patterns in the data. However similar to the few previous unsupervised methods, it works best when using data collected under controlled condition and in artificial settings. It faces difficulty mining real life data. For example if the activities performed in different regions of home have different frequencies, or if heterogeneous sensors are used (such as motion sensors in combination with contact switch sensors), some of the patterns will not be discovered. In this paper, we introduce COM, which stands for Continuous, varied Order, Multi Threshold activity discovery method. COM not only discovers discontinuous patterns and their variations, but is also able to better handle real life data by dealing with different frequencies/sensors problem. It is able to find a higher percentage of the frequent patterns, and thus achieving a better discovery and recognition accuracy. Also by pruning the irrelevant patterns based on mutual information it retains only the relevant variations of the patterns, reducing the number of irrelevant variations. It takes a more automated approach by eliminating the need for configuring some of the parameters by the user, such as the percentage of the top frequent sensor events that should be used to discover the activity patterns, or the support threshold for frequent events, or the number of activities. Automating such configurations results in a more overall automated approach. We also provide a pattern visualizer component that is able to visualize the activity patterns and their variations in order to help the users/care-givers to better identify the variations of the patterns and as a result to detect abnormal or suspicious cases.. The remainder of the paper is organized as follows. First we describe our approach in more detail, including its three main stages. The first stage discovers activities by mining data and extracting activity models, while the second stage summarizes the discovered patterns by clustering, and the third stage is responsible for recognizing activities. We then show the results of our experiments on data obtained from two different smart apartments. Finally we end the paper with our conclusions and discussion of future work. In this paper we have shown an automatic approach to activity discovery and monitoring for assisted living in a real world setting. Our model called COM first discovers the activities using our mining method. COM is able to find activity patterns and their variations, even if the patterns exhibit discontinuity or if the patterns' frequencies exhibit difference across different regions in home. We then cluster discovered activities to get a more compressed representation of the patterns. Finally we use HMM to recognize the discovered activities. We also showed a simple visualizer that visualizes activity patterns and their variations along with statistical information on the patterns. In future, we intend to use anomaly detection approaches along with our model in order to automatically detect any abnormal situation. Table 2 : Confusion matrices for apartment 1 (Table a) and apartment 2 (Table b) .. (a) The pattern visualizer. (b) "Meal Preparation" activity in apartment 2.. (c) A variation of "Meal Preparation" activity in apartment 2. We evaluated the performance of our COM algorithm using the data that was collected from two different smart apartments. The layout of the apartments including sensor placement and location tags are shown in Figure 5 . We will refer to apartments in Figures 5(a) and 5(b) as apartments 1 and apartment 2. The data was collected during an approximately three month period. Each apartment is equipped with motion sensors and contact sensors which monitor the open/closed status of doors and cabinets.. To be able to evaluate the results of our algorithms, each of the datasets was annotated with ADL activities of interest for the corresponding resident and apartment. A total of 10 activities were noted for each apartment. Those activities included bathing, bed-toilet transition, eating, leave/enter home, meal preparation(cooking), personal hygiene, sleeping in bed, sleeping not in bed (relaxing) and taking medicine. The first and second datasets include 3384 and 2602 annotated activity instances, respectively.. We ran our algorithm for each one of the apartments. As mentioned before, one major improvement of our algorithm is to use multiple support thresholds for different regions of homes, as well as for different types of sensors. Though a single support threshold might not pose a problem in scripted experiments, where all activities are performed with the same frequency (e.g. 20 times as in [20] ), in real life this assumption results in missing many patterns. To show how using a single threshold affects the accuracy of pattern discovery, we performed a number of experiments, once using the COM algorithm and once using DVSM.. The data mining step was able to discover a considerable number of pre-defined activities of interest. In apartment 1, it discovered 8 out of 10 activities, including bathing, leave/enter home, meal preparation(cooking), personal hygiene, sleeping in bed, sleeping not in bed (relaxing) and taking medicine. In apartment 2, it was able to discover 7 out of 10 activities including bathing, bed-toilet transition, eating, enter home, leave/enter home, meal preparation(cooking), personal hygiene, sleeping in bed, and sleeping not in bed (relaxing). Some of the patterns that have not been discovered are indeed quite difficult to spot and also in some cases less frequent. For example the housekeeping activity happens every 2-4 weeks and is not associated with any specific sensor. Also some of the similar patterns are merged together, as they use the same set of sensors, such as eating and relaxing activities. It should be noted that some of the activities are discovered multiple times in form of different patterns, as the activity might be performed in a different motion trajectory using different sensors. Figures 6 and 7 show the number of distinct discovered activities by both COM and DVSM algorithms in apartments 1 and 2. One can clearly see that COM is able to discover a higher number of distinct activities.. Using externally provided annotations to verify our results, we also computed the percentage of non-annotated discovered activities, i.e. the percentage of activities that actually have no annotation, but have been discovered by our algorithm. For apartment 1 the percentage of non-annotated activities with respect to the number of total distinct activities was 7.0% and for apartment 2 it was 2.0%. The low percentage of discovered activities that are not annotated shows that most of the discovered patterns are indeed well show the total number of discovered patterns instances for both the COM and DVSM algorithms, as well as the total number of pruned instances. It can be seen that though sometimes COM generates more pattern instances and in general more patterns, it also prunes more pattern instances due to its improved pruning capabilities, while still discovering more distinct patterns (activities).. In the next step, we clustered the discovered activities together using our agglomerative clustering method. The similarity threshold ζ of 0.75 was found to be a suitable value based on several runs of our experiments. By using the externally provided labels, we were also able to measure the purity of the clustered patterns with respect to the consistency of their variations using Equation 11. Equation 11 is known in literature as Jaccard similarity is a form of simple matching coefficient and is used to determine the similarity between clusters and actual classes. Here |v11| refers to the number of variations that have the same label as their general pattern, and |v01| and |v10| refer to the number of variations that have a different label other than their general pattern's label. We call this number the variation consistency.. The variation consistency for clustered patterns in apart- ment 1 was 0.90 in our experiments, while for apartment 2 it was 0.76. By closely looking at the data and examining it, it was revealed that the patterns in the second dataset are much more irregular. Therefore most similar patterns are combined together, such as taking medication and meal preparation which usually happen at approximately the same time and the same location (in this case kitchen). Next, using the discovered patterns an HMM was automatically constructed to track and recognize the activities. Figures 8(c) and 8(f) show the recognition results for the two apartments. Tables 2 show the confusion matrices for all the activities. It can be seen from those tables that due to more regularity in apartment 1, it's easier to track and recognize activities. It also shows that despite the fact that the real life activities can be somehow hectic and irregular, still our algorithm is able to track and monitor a considerable number of the patterns.. The results of all stages of the algorithm as a set of patterns are represented in an XML format to make it easier to share results across different components. Though XML seems to be an excellent choice for data representation, it might not be the best choice for a natural user-friendly representation. Especially considering the fact that a pattern has many features such as the temporal features, the pattern trajectory, etc. It even becomes more difficult when comparing different variations of a pattern and trying to figure out their relation. We have designed a visualizer to better help to understand the patterns and their variations. A snapshot of our visualizer can be seen in 9(a). The visualizer shows the patterns on the home map, along with important statistical information such as start time, duration, and frequency shown in a separate panel as in 9(a). User can go back and forth between patterns as well as variations of a pattern using the navigation buttons. Also it's possible to see all the patterns or all the variations of a pattern at the same time. In this case, each pattern (or variation) will be visualized using a unique color-code as depicted in "Map Guide". Using such a simple visualizer allows users not to deal with the sensor information in a textual format, which might be confusing and hard to understand. Rather it allows the users to see the patterns in a natural format and quickly diagnose relations between different variations of a pattern.

O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 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 B I O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 Elegant Algorithm for the Construction of Suffix Arrays The suffix array is a data structure that finds numerous applications in string processing problems for both linguistic texts and biological data. It has been introduced as a memory efficient alternative for suffix trees. The suffix array consists of the sorted suffixes of a string. There are several linear time suffix array construction algorithms (SACAs) known in the literature. However, one of the fastest algorithms in practice has a worst case run time of O(n 2 ). The problem of designing practically and theoretically efficient techniques remains open.In this paper we present an elegant algorithm for suffix array construction which takes linear time with high probability; the probability is on the space of all possible inputs. Our algorithm is one of the simplest of the known SACAs and it opens up a new dimension of suffix array construction that has not been explored until now. Our algorithm is easily parallelizable. We offer parallel implementations on various parallel models of computing. We prove a lemma on the ℓ-mers of a random string which might find independent applications. We also present another algorithm that utilizes the above algorithm. This algorithm is called RadixSA and has a worst case run time of O(n log n). RadixSA introduces an idea that may find independent applications as a speedup technique for other SACAs. An empirical comparison of RadixSA with other algorithms on various datasets reveals that our algorithm is one of the fastest algorithms to date. The C++ source code is freely available at The suffix array is a data structure that finds numerous applications in string processing problems for both linguistic texts and biological data. It has been introduced in [1] as a memory efficient alternative to suffix trees. The suffix array of a string T is an array A, (|T | = |A| = n) which gives the lexicographic order of all the suffixes of T . Thus, A[i] is the starting position of the lexicographically i-th smallest suffix of T .. The original suffix array construction algorithm [1] runs in O(n log n) time. It is based on a technique called prefix doubling: assume that the suffixes are grouped into buckets such that suffixes in the same bucket share the same prefix of length k. Let b i be the bucket number for suffix i. Let q i = (b i , b i+k ). Sort the suffixes with respect to q i using radix sort. As a result, the suffixes become sorted by their first 2k characters. Update the bucket numbers and repeat the process until all the suffixes are in buckets of size 1. This process takes no more than log n rounds. The idea of sorting suffixes in one bucket based on the bucket information of nearby suffixes is called induced copying. It appears in some form or another in many of the algorithms for suffix array construction.. Numerous papers have been written on suffix arrays. A survey on some of these algorithms can be found in [2] . The authors of [2] categorize suffix array construction algorithms (SACA) into five based on the main techniques employed: 1) Prefix Doubling (examples include [1] -run time = O(n log n); [3] -run time = O(n log n)); 2) Recursive (examples include [4] -run time = O(n log log n)); 3) Induced Copying (examples include [5] run time = O(n √ log n)); 4) Hybrid (examples include [6] and [7] -run time = O(n 2 log n)); and 5) Suffix Tree (examples include [8] -run time = O(n log σ) where σ is the size of the alphabet).. In 2003, three independent groups [7, 9, 10] found the first linear time suffix array construction algorithms which do not require building a suffix tree beforehand. For example, in [7] the suffixes are classified as either L or S. Suffix i is an L suffix if it is lexicographically larger than suffix i + 1, otherwise it is an S suffix. Assume that the number of L suffixes is less than n/2, if not, do this for S suffixes. Create a new string where the segments of text in between L suffixes are renamed to single characters. The new text has length no more than n/2 and we recursively find its suffix array. This suffix array gives the order of the L suffixes in the original string. This order is used to induce the order of the remaining suffixes.. Another linear time algorithm, called skew, is given in [9] . It first sorts those suffixes i with i mod 3 = 0 using a recursive procedure. The order of these suffixes is then used to infer the order of the suffixes with i mod 3 = 0. Once these two groups are determined we can compare one suffix from the first group with one from the second group in constant time. The last step is to merge the two sorted groups, in linear time.. Several other SACAs have been proposed in the literature in recent years (e.g., [11, 12] ). Some of the algorithms with superlinear worst case run times perform better in practice than the linear ones. One of the currently best performing algorithms in practice is the BP R algorithm of [12] which has an asymptotic worst-case run time of O(n 2 ). BP R first sorts all the suffixes up to a certain depth, then focuses on one bucket at a time and repeatedly refines it into sub-buckets.. In this paper we present an elegant algorithm for suffix array construction. This algorithm takes linear time with high probability. Here the probability is on the space of all possible inputs. Our algorithm is one of the simplest algorithms known for constructing suffix arrays. It opens up a new dimension in suffix array construction, i.e., the development of algorithms with provable expected run times. This dimension has not been explored before. We prove a lemma on the ℓ-mers of a random string which might find independent applications. Our algorithm is also nicely parallelizable. We offer parallel implementations of our algorithm on various parallel models of computing.. We also present another algorithm for suffix array construction that utilizes the above algorithm. This algorithm, called RadixSA, is based on bucket sorting and has a worst case run time of O(n log n). It employs an idea which, to the best of our knowledge, has not been directly exploited until now. RadixSA selects the order in which buckets are processed based on a heuristic such that, downstream, they impact as many other buckets as possible. This idea may find independent application as a standalone speedup technique for other SACAs based on bucket sorting. RadixSA also employs a generalization of Seward's copy method [13] (initially described in [14] ) to detect and handle repeats of any length. We compare RadixSA with other algorithms on various datasets. In this paper we have presented an elegant algorithm for the construction of suffix arrays. This algorithm is one of the simplest algorithms known for suffix arrays construction and runs in O(n) time on a large fraction of all possible inputs. It is also nicely parallelizable. We have shown how our algorithm can be implemented on various parallel models of computing.. We have also given an extension of this algorithm, called RadixSA, which has a worst case runtime of O(n log n) and proved to be efficient in practice. RadixSA uses a heuristic to select the order in which buckets are processed so as to reduce the number of operations performed. RadixSA performed a linear number of operations on all but one of the inputs tested. The heuristic could find application as an independent speedup technique for other algorithms which use bucket sorting and induced copying. For example, BPR could use it to determine the order in which it chooses buckets to be refined. A possible research direction is to improve RadixSA's heuristic. Buckets can be processed based on a topological sorting of their dependency graph. Such a graph has at most n/2 nodes, one for each non singleton bucket, and at most n/2 edges. Thus, it has the potential for a lightweight implementation.. An interesting open problem is to devise a randomized algorithm that has a similar performance.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 Integer Linear Programming approach to the single and bi-objective Next Release Problem Context: The Next Release Problem involves determining the set of requirements to implement in the next release of a software project. When the problem was first formulated in 2001, Integer Linear Programming, an exact method, was found to be impractical because of large execution times. Since then, the problem has mainly been addressed by employing metaheuristic techniques. Objective: In this paper, we investigate if the single-objective and bi-objective Next Release Problem can be solved exactly and how to better approximate the results when exact resolution is costly. Methods: We revisit Integer Linear Programming for the single-objective version of the problem. In addition, we integrate it within the Epsilon-constraint method to address the bi-objective problem. We also investigate how the Pareto front of the bi-objective problem can be approximated through an anytime deterministic Integer Linear Programming-based algorithm when results are required within strict runtime constraints. Comparisons are carried out against NSGA-II. Experiments are performed on a combination of synthetic and real-world datasets. Findings: We show that a modern Integer Linear Programming solver is now a viable method for this problem. Large single objective instances and small bi-objective instances can be solved exactly very quickly. On large bi-objective instances, execution times can be significant when calculating the complete Pareto front. However, good approximations can be found effectively. Conclusion: This study suggests that (1) approximation algorithms can be discarded in favor of the exact method for the single-objective instances and small bi-objective instances, (2) the Integer Linear Programming-based approximate algorithm outperforms the NSGA-II genetic approach on large bi-objective instances, and (3) the run times for both methods are low enough to be used in real-world situations. A key aspect in any large project is determining an appropriate set of requirements as expressed by stakeholders. The Next Release Problem (NRP), originally proposed by Bagnall et al. [1] , formalizes this issue and involves finding a subset of requirements or a subset of stakeholders that maximizes a desirable property, such as revenue, while being constrained by an upper bound on some other property, usually cost. It is important to note that the NRP is only concerned with the next release. Planning over several releases is formalized in the closely related, and more complex, Release Planning Problem [2] .. In the bi-objective NRP [3] , the upper bound is lifted and the constraint transformed into a second objective which is usually in conflict with the first. As a result, the decision-maker is presented with a set of potential solutions, the Pareto-optimal set, that represents the different possible trade-offs between the two objectives.. Research on the NRP has mainly been concerned with search based software engineering approaches [4] probably because initial efforts to use Integer Linear Programming (ILP), which is an exact approach, proved inconclusive beyond small problem instances because of large run times [1] . In this paper we revisit ILP in the light of much improved solvers to see if, and how, it can be used to address the NRP with one and two objectives.. The main contributions of this paper are as follows: 2. We show that iterated applications of ILP through the e-constraint method can be used to generate the Pareto front of the bi-objective NRP, with the most complex instance clocking in at over 8 h. 3. We show how to deterministically generate a good approximation of the Pareto front when time is limited by applying an Anytime Dichotomic Scheme which performs iterated applications of ILP.. We also introduce two transformations on the NRP that make it more amenable to be solved by a genetic algorithm that cannot handle constraints.. The next section gives an overview of related work. Section 3 presents the NRP with one objective, the possible constraints between requirements and how to simplify the problem under certain conditions. The datasets and problem instances are presented in Section 4 and the results for the NRP with one objective are given in Section 5. Section 6 deals with the bi-objective NRP and presents the e-constraint method, the Anytime Dichotomic Scheme and the NSGA-II algorithm. Results for two objectives are presented in Section 7. Section 8 examines the threats to the validity of this study. This is followed by the conclusion in Section 9.. The supplemental material contains model transformation examples, an exploratory analysis of the NSGA-II seeding used in the paper as well as the source code and results. It is available at the following address: www.cs.stir.ac.uk/nve/nrp/ Since the early 2000s a number of researchers have modeled software requirements selection and planning as specialized optimization problems. A variety of formulations considering single and multiple software releases, and single and multiple (different) optimization objectives, have been proposed. The term Next Release Problem (NRP) was coined by Bagnall et al. [1] who first formalized and successfully solved requirements optimization for a single release as a constrained optimization problem using metaheuristics.. Feather and Menzies [5] proposed an iterative approach to requirements optimization that involves human-expert decision making. A requirement interaction model is executed to randomly sample the space of options. The large data set produced is then condensed into a small list of critical decisions, which is presented to humans experts. At each iteration, experts select from a decreasing number of major alternatives to finally produce a near-optimal set of requirements.. In a series of publications Ruhe et al. [6] [7] [8] [9] propose a comprehensive family of hybrid approaches, termed EVOLVE, to solve the so-called Release Planning Problem. Release planning, a generalization of the Next Release Problem, considers the selection and assignment of features to a sequence of consecutive product releases subject to resource and risk constraints.. Additional approximate algorithms employed to successfully solve the single objective NRP include ant colony optimization [10] and backbone-based multilevel search [11] . We compared our results to the latter in Section 5. Ant colony optimization is further explored with successful results against competing algorithms in the Release Planning Problem with dependencies [12] .. A bi-objective formulation of the NRP, with requirement costs and stakeholder satisfaction values considered as two separate criteria, was presented by Zhang et al. [3] where evolutionary methods are used to find approximations of the Pareto optimal set (Section 6.5). In a follow up study [13] , the authors incorporated requirement interactions.. Other authors have studied the bi-objective NRP with the aim of comparing the performance and highlighting the strengths of different algorithms including evolutionary approaches, simulated annealing and ant colony optimization [14, 15] .. Finkelstein et al. [16] considered the problem of fairness analysis in requirements optimization. A bi-objective formulation solved with evolutionary methods is used for balancing multiple stakeholders with different views on the priorities for requirements choice.. Apart from the present paper, renewed interest in exact methods for the NRP has materialized in the work by Harman et al. [17] which employs a dynamic programming algorithm to perform sensitivity analysis of unconstrained NRP instances. We use CPLEX 12.5.1 to solve the classic and realistic instances using the general NRP formulation presented in Section 3.1. The CPLEX API is called from a C++ program whose only other task is to read in and output the data. CPLEX is only allowed to use one thread.. We set the EpInt, EpGap and EpAGap parameters to 0. Briefly, these specify the threshold beyond which a solution is considered to be close enough to optimality. Setting them to 0 ensures that we obtain the best possible value although in many cases this unnecessarily lengthens the search as the best value could be obtained with a small non-zero parameter value. Default values are used for the remaining CPLEX parameters.. The C++ source code is compiled with GCC 4.6.3 with the -O3 compiler optimization flag. The experiments are carried out on a PC running Ubuntu 12.04 LTS 64-bit with an Intel Core i7-3770 CPU clocked at 3.4 GHz and with 16 GB of RAM.. Since the results are deterministic, we run each instance three times to account for potential run time differences due to external processes on the test machine having a detrimental effect on very small execution times. In practice, the run times for the same instance only differ by, at most, 0.01 s.. For this set of experiments, we use the same base setup as described in Section 5.1. All the programs are coded in C++ and NSGA-II is implemented using the ParadisEO framework [47] . It is key to note that the use of the -O3 compiler optimization flag plays a very important part in making the NSGA-II algorithm fast since it roughly produces a fivefold speedup on our machine. The deterministic algorithms are run only once.. For the e-constraint method, since cost is an integer function for all instances, r ¼ 1 and the search space is progressively restricted w.r.t. cost.. The NSGA-II parameter values are mostly those used by Zhang et al. [13] : a population of 500, a tournament size of 5, a cross-over probability P c ¼ 0:8 and a mutation probability P m ¼ 1=n where n Fig. 4 . Illustrated example of running the e-constraint algorithm in order to maximize two objectives, f 1 and f 2 : (a) find an optimum solution of f 1 ; (b) restrict the solution space according to the f 2 coordinate of the solution found and look for an optimum solution of f 1 in that space; (c) repeat the previous step, notice that in this step there are two optimal solutions for f 1 and the single objective solver returns a solution that is weakly efficient; (d) the next solution is found, it dominates the previous one; (e) again there are two optimal solutions for f 1 but here the single objective solver immediately finds the non-dominated one; and (f) there are no more solutions to be found, the problem is infeasible and the algorithm ends. The weakly efficient (dominated) solutions need to be filtered out of the set of solutions. is the number of boolean decision variables. However, we determined that we needed to increase the number of generations from 100 to 200 in the case of the classic and realistic instances, mainly to deal with larger instance size and complexity. Seeding is set to 2%. These two choices were determined by performing an exploratory analysis that is described in the supplemental material. For each instance, NSGA-II is executed 30 times.

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


DNA SEQUENCE RECONSTRUCTION BASED ON GENETIC ALGORITHM ABSTRACTIt is becoming increasingly important to develop a novelDNA molecule, the fundamental fabric of life carries the genetic instruction for making living organisms. The main role of DNA is the long-term storage of information and it is often compared to a set of blueprints, since DNA contains the instructions needed to construct other components of cells, such as proteins and RNA molecules. The DNA segments that carry this genetic information are called genes, but other DNA sequences have structural purposes, or are involved in regulating the use of this genetic information. Chemically, DNA is a long polymer of simple units called nucleotides, which are held together by a backbone made of alternating sugars and phosphate groups. Attached to each sugar is one of four types of molecules called bases. The bases are adenine (A), thymine (T), cytosine (C) and guanine (G). It is the sequence of these four bases along the backbone that encodes information. This information is read using the genetic code, which specifies the sequence of the amino acids within proteins. Within cells, DNA is organized into structures called chromosomes and the set of chromosomes within a cell make up a genome. These chromosomes are duplicated before the cells divide, in a process called DNA replication.In chemical laboratory methods of DNA sequencing, a long DNA strand is chopped into slices and then biochemical method is applied to detect the nucleotide sequence in a single fragment. Then these known fragments are used to form a superstring, which is almost the same as the original DNA strand. In 1994, Leonard Adleman used molecular tools to solve a hard computational problem [3] . Adleman used traveling salesperson problem to manipulate DNA sequence and this is the first solution of a mathematical problem with biological tools. In The limitations of the conventional DNA sequencing methods can be overcome in the hybridization technique with the help of genetic algorithm; where in a single biochemical experiment (using a DNA probe chip) is possible to know almost all the subsequences of a specified length, which are presented in the original sequence. S-M. Chen et al. presented the method to solve DNA sequence alignment using genetic algorithm [3] . Inspired from their paper we present a new method for DNA sequence reconstruction using genetic algorithm. We choose the right successor with the help of successor choice technique and the fitness function. This method also deals with the oligonucleotides with negative and positive errors. Through this method we also manage the duplication of oligonucleotides. DNA molecule, the fundamental fabric of life carries the genetic instruction for making living organisms. The main role of DNA is the long-term storage of information and it is often compared to a set of blueprints, since DNA contains the instructions needed to construct other components of cells, such as proteins and RNA molecules. The DNA segments that carry this genetic information are called genes, but other DNA sequences have structural purposes, or are involved in regulating the use of this genetic information. Chemically, DNA is a long polymer of simple units called nucleotides, which are held together by a backbone made of alternating sugars and phosphate groups. Attached to each sugar is one of four types of molecules called bases. The bases are adenine (A), thymine (T), cytosine (C) and guanine (G). It is the sequence of these four bases along the backbone that encodes information. This information is read using the genetic code, which specifies the sequence of the amino acids within proteins. Within cells, DNA is organized into structures called chromosomes and the set of chromosomes within a cell make up a genome. These chromosomes are duplicated before the cells divide, in a process called DNA replication.. In chemical laboratory methods of DNA sequencing, a long DNA strand is chopped into slices and then biochemical method is applied to detect the nucleotide sequence in a single fragment. Then these known fragments are used to form a superstring, which is almost the same as the original DNA strand. In 1994, Leonard Adleman used molecular tools to solve a hard computational problem [3] . Adleman used traveling salesperson problem to manipulate DNA sequence and this is the first solution of a mathematical problem with biological tools. In [1] J. Blazewicz et al. presented a method of DNA sequencing. In their method, if the hybridization experiment were executed without errors, the subsequence would contain nothing but all subsequences of length l of the original sequence of the known length n. Then the subsequence consists of n-l+1 elements and neighboring elements always overlap on l-1 nucleotides. In [3] S-M Chen et al. presented a method of DNA sequence with divide and conquer technique where they used a standard scheme of selection operation called the roulette wheel method.. The limitations of the conventional DNA sequencing methods can be overcome in the hybridization technique with the help of genetic algorithm; where in a single biochemical experiment (using a DNA probe chip) is possible to know almost all the subsequences of a specified length, which are presented in the original sequence. S-M. Chen et al. presented the method to solve DNA sequence alignment using genetic algorithm [3] . Inspired from their paper we present a new method for DNA sequence reconstruction using genetic algorithm. We choose the right successor with the help of successor choice technique and the fitness function. This method also deals with the oligonucleotides with negative and positive errors. Through this method we also manage the duplication of oligonucleotides.

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