A

Hierarchical

Process

Execution

Support

for

Grid

Computing

Fábio

R.

L.

Cicerre

Institute

of

Computing

State

University

of

Campinas

Campinas,

Brazil

fcicerre@ic.unicamp.br

Edmundo

R.

M.

Madeira

Institute

of

Computing

State

University

of

Campinas

Campinas,

Brazil

edmundo@ic.unicamp.br

Luiz

E.

Buzato

Institute

of

Computing

State

University

of

Campinas

Campinas,

Brazil

buzato@ic.unicamp.br

ABSTRACT

Grid

is

an

emerging

infrastructure

used

to

share

resources

among

virtual

organizations

in

a

seamless

manner

and

to

provide

breakthrough

computing

power

at

low

cost.

Nowadays

there

are

dozens

of

academic

and

commercial

products

that

allow

execution

of

isolated

tasks

on

grids,

but

few

products

support

the

enactment

of

long-running

processes

in

a

distributed

fashion.

In

order

to

address

such

subject,

this

paper

presents

a

programming

model

and

an

infrastructure

that

hierarchically

schedules

process

activities

using

available

nodes

in

a

wide

grid

environment.

Their

advantages

are

automatic

and

structured

distribution

of

activities

and

easy

process

monitoring

and

steering.

Categories

and

Subject

Descriptors

[Computer-Communication

Networks]:

Distributed

Systems-distributed

applications

General

Terms

Design,

Performance,

Management,

Algorithms

INTRODUCTION

Grid

computing

is

a

model

for

wide-area

distributed

and

parallel

computing

across

heterogeneous

networks

in

multiple

administrative

domains.

This

research

field

aims

to

promote

sharing

of

resources

and

provides

breakthrough

computing

power

over

this

wide

network

of

virtual

organizations

in

a

seamless

manner

Traditionally,

as

in

Globus

Condor-G

and

Legion

there

is

a

minimal

infrastructure

that

provides

data

resource

sharing,

computational

resource

utilization

management,

and

distributed

execution.

Specifically,

considering

distributed

execution,

most

of

the

existing

grid

infrastructures

supports

execution

of

isolated

tasks,

but

they

do

not

consider

their

task

interdependencies

as

in

processes

(workflows)

This

deficiency

restricts

better

scheduling

algorithms,

distributed

execution

coordination

and

automatic

execution

recovery.

There

are

few

proposed

middleware

infrastructures

that

support

process

execution

over

the

grid.

In

general,

they

model

processes

by

interconnecting

their

activities

through

control

and

data

dependencies.

Among

them,

WebFlow

emphasizes

an

architecture

to

construct

distributed

processes;

Opera-G

provides

execution

recovering

and

steering,

GridFlow

focuses

on

improved

scheduling

algorithms

that

take

advantage

of

activity

dependencies,

and

SwinDew

supports

totally

distributed

execution

on

peer-to-peer

networks.

However,

such

infrastructures

contain

scheduling

algorithms

that

are

centralized

by

process

or

completely

distributed,

but

difficult

to

monitor

and

control

In

order

to

address

such

constraints,

this

paper

proposes

a

structured

programming

model

for

process

description

and

a

hierarchical

process

execution

infrastructure.

The

programming

model

employs

structured

control

flow

to

promote

controlled

and

contextualized

activity

execution.

Complementary,

the

support

infrastructure,

which

executes

a

process

specification,

takes

advantage

of

the

hierarchical

structure

of

a

specified

process

in

order

to

distribute

and

schedule

strong

dependent

activities

as

a

unit,

allowing

a

better

execution

performance

and

fault-tolerance

and

providing

localized

communication.

The

programming

model

and

the

support

infrastructure,

named

X

avantes,

are

under

implementation

in

order

to

show

the

feasibility

of

the

proposed

model

and

to

demonstrate

its

two

major

advantages:

to

promote

widely

distributed

process

execution

and

scheduling,

but

in

a

controlled,

structured

and

localized

way.

Next

Section

describes

the

programming

model,

and

Section

the

support

infrastructure

for

the

proposed

grid

computing

model.

Section

demonstrates

how

the

support

infrastructure

executes

processes

and

distributes

activities.

Related

works

are

presented

and

compared

to

the

proposed

model

in

Section

The

last

Section

concludes

this

paper

encompassing

the

advantages

of

the

proposed

hierarchical

process

execution

support

for

the

grid

computing

area

and

lists

some

future

works.

Middleware

Companion

ProcessElement

Process

Activity

Controller

Figure

High-level

framework

of

the

programming

model

PROGRAMMING

MODEL

The

programming

model

designed

for

the

grid

computing

architecture

is

very

similar

to

the

specified

to

the

Business

Process

Execution

Language

(BPEL)

Both

describe

processes

in

XML

documents,

but

the

former

specifies

processes

strictly

synchronous

and

structured,

and

has

more

constructs

for

structured

parallel

control.

The

rationale

behind

of

its

design

is

the

possibility

of

hierarchically

distribute

the

process

control

and

coordination

based

on

structured

constructs,

differently

from

BPEL,

which

does

not

allow

hierarchical

composition

of

processes.

In

the

proposed

programming

model,

a

process

is

a

set

of

interdependent

activities

arranged

to

solve

a

certain

problem.

In

detail,

a

process

is

composed

of

activities,

subprocesses,

and

controllers

(see

Figure

Activities

represent

simple

tasks

that

are

executed

on

behalf

of

a

process;

subprocesses

are

processes

executed

in

the

context

of

a

parent

process;

and

controllers

are

control

elements

used

to

specify

the

execution

order

of

these

activities

and

subprocesses.

Like

structured

languages,

controllers

can

be

nested

and

then

determine

the

execution

order

of

other

controllers.

Data

are

exchanged

among

process

elements

through

parameters.

They

are

passed

by

value,

in

case

of

simple

objects,

or

by

reference,

if

they

are

remote

objects

shared

among

elements

of

the

same

controller

or

process.

External

data

can

be

accessed

through

data

sources,

such

as

relational

databases

or

distributed

objects.

Controllers

Controllers

are

structured

control

constructs

used

to

define

the

control

flow

of

processes.

There

are

sequential

and

parallel

controllers.

The

sequential

controller

types

are:

block,

switch,

for

and

while.

The

block

controller

is

a

simple

sequential

construct,

and

the

others

mimic

equivalent

structured

programming

language

constructs.

Similarly,

the

parallel

types

are:

par,

parswitch,

parfor

and

parwhile.

They

extend

the

respective

sequential

counterparts

to

allow

parallel

execution

of

process

elements.

All

parallel

controller

types

fork

the

execution

of

one

or

more

process

elements,

and

then,

wait

for

each

execution

to

finish.

Indeed,

they

contain

a

fork

and

a

join

of

execution.

Aiming

to

implement

a

conditional

join,

all

parallel

controller

types

contain

an

exit

condition,

evaluated

all

time

that

an

element

execution

finishes,

in

order

to

determine

when

the

controller

must

end.

The

parfor

and

parwhile

are

the

iterative

versions

of

the

parallel

controller

types.

Both

fork

executions

while

the

iteration

condition

is

true.

This

provides

flexibility

to

determine,

at

run-time,

the

number

of

process

elements

to

execute

simultaneously.

When

compared

to

workflow

languages,

the

parallel

controller

types

represent

structured

versions

of

the

workflow

control

constructors,

because

they

can

nest

other

controllers

and

also

can

express

fixed

and

conditional

forks

and

joins,

present

in

such

languages.

Process

Example

This

section

presents

an

example

of

a

prime

number

search

application

that

receives

a

certain

range

of

integers

and

returns

a

set

of

primes

contained

in

this

range.

The

whole

computation

is

made

by

a

process,

which

uses

a

parallel

controller

to

start

and

dispatch

several

concurrent

activities

of

the

same

type,

in

order

to

find

prime

numbers.

The

portion

of

the

XML

document

that

describes

the

process

and

activity

types

is

shown

below.

NAME="FindPrimes">

TYPE="int"

NAME="min"/>

TYPE="int"

NAME="max"/>

TYPE="int"

NAME="numPrimes"/>

TYPE="int"

NAME="numActs"/>

<BODY>

setPrimes(new

RemoteHashSet());

parfor.setMin(getMin());

parfor.setMax(getMax());

parfor.setNumPrimes(getNumPrimes());

parfor.setNumActs(getNumActs());

parfor.setPrimes(getPrimes());

<PARFOR

NAME="parfor">

TYPE="int"

NAME="min"/>

TYPE="int"

NAME="max"/>

TYPE="int"

NAME="numPrimes"/>

TYPE="int"

NAME="numActs"/>

TYPE="RemoteCollection"

NAME="primes"/>

<ITERATE>

int

range=

int

minNum

range*getCounter()+getMin();

int

maxNum

if

(getCounter()

maxNum

getMax();

findPrimes.setMin(minNum);

findPrimes.setMax(maxNum);

findPrimes.setNumPrimes(getNumPrimes());

findPrimes.setPrimes(getPrimes());

<ACTIVITY

TYPE="FindPrimes"

NAME="findPrimes"/>

</ITERATE>

</PARFOR>

</BODY>

TYPE="RemoteCollection"

NAME="primes"/>

Middleware

for

Grid

Computing

NAME="FindPrimes">

TYPE="int"

NAME="min"/>

TYPE="int"

NAME="max"/>

TYPE="int"

NAME="numPrimes"/>

TYPE="RemoteCollection"

NAME="primes"/>

<CODE>

for

(int

num=getMin();

num<=getMax();

num++)

stop,

required

number

of

primes

was

found

if

(primes.size()

getNumPrimes())

break;

boolean

prime

true;

for

(int

i<num;

i++)

if

(num

i

prime

false;

break;

if

(prime)

primes.add(new

Integer(num));

</CODE>

Firstly,

a

process

type

that

finds

prime

numbers,

named

FindPrimes,

is

defined.

It

receives,

through

its

input

parameters,

a

range

of

integers

in

which

prime

numbers

have

to

be

found,

the

number

of

primes

to

be

returned,

and

the

number

of

activities

to

be

executed

in

order

to

perform

this

work.

At

the

end,

the

found

prime

numbers

are

returned

as

a

collection

through

its

output

parameter.

This

process

contains

a

PARFOR

controller

aiming

to

execute

a

determined

number

of

parallel

activities.

It

iterates

from

to

getNumActs()

which

determines

the

number

of

activities,

starting

a

parallel

activity

in

each

iteration.

In

such

case,

the

controller

divides

the

whole

range

of

numbers

in

subranges

of

the

same

size,

and,

in

each

iteration,

starts

a

parallel

activity

that

finds

prime

numbers

in

a

specific

subrange.

These

activities

receive

a

shared

object

by

reference

in

order

to

store

the

prime

numbers

just

found

and

control

if

the

required

number

of

primes

has

been

reached.

Finally,

it

is

defined

the

activity

type,

FindPrimes,

used

to

find

prime

numbers

in

each

subrange.

It

receives,

through

its

input

parameters,

the

range

of

numbers

in

which

it

has

to

find

prime

numbers,

the

total

number

of

prime

numbers

to

be

found

by

the

whole

process,

and,

passed

by

reference,

a

collection

object

to

store

the

found

prime

numbers.

Between

its

CODE

markers,

there

is

a

simple

code

to

find

prime

numbers,

which

iterates

over

the

specified

range

and

verifies

if

the

current

integer

is

a

prime.

Additionally,

in

each

iteration,

the

code

verifies

if

the

required

number

of

primes,

inserted

in

the

primes

collection

by

all

concurrent

activities,

has

been

reached,

and

exits

if

true.

The

advantage

of

using

controllers

is

the

possibility

of

the

support

infrastructure

determines

the

point

of

execution

the

process

is

in,

allowing

automatic

recovery

and

monitoring,

and

also

the

capability

of

instantiating

and

dispatching

process

elements

only

when

there

are

enough

computing

resources

available,

reducing

unnecessary

overhead.

Besides,

due

to

its

structured

nature,

they

can

be

easily

composed

and

the

support

infrastructure

can

take

advantage

of

this

in

order

to

distribute

hierarchically

the

nested

controllers

to

Group

Server

Group

Java

Virtual

Machine

RMI

JDBC

Group

Manager

Process

Server

Java

Virtual

Machine

RMI

JDBC

Process

Coordinator

Worker

Java

Virtual

Machine

RMI

Activity

Manager

Repository

Figure

Infrastructure

architecture

different

machines

over

the

grid,

allowing

enhanced

scalability

and

fault-tolerance.

SUPPORT

INFRASTRUCTURE

The

support

infrastructure

comprises

tools

for

specification,

and

services

for

execution

and

monitoring

of

structured

processes

in

highly

distributed,

heterogeneous

and

autonomous

grid

environments.

It

has

services

to

monitor

availability

of

resources

in

the

grid,

to

interpret

processes

and

schedule

activities

and

controllers,

and

to

execute

activities.

Infrastructure

Architecture

The

support

infrastructure

architecture

is

composed

of

groups

of

machines

and

data

repositories,

which

preserves

its

administrative

autonomy.

Generally,

localized

machines

and

repositories,

such

as

in

local

networks

or

clusters,

form

a

group.

Each

machine

in

a

group

must

have

a

Java

Virtual

Machine

(JVM)

and

a

Java

Runtime

Library,

besides

a

combination

of

the

following

grid

support

services:

group

manager

(GM),

process

coordinator

(PC)

and

activity

manager

(AM).

This

combination

determines

what

kind

of

group

node

it

represents:

a

group

server,

a

process

server,

or

simply

a

worker

(see

Figure

In

a

group

there

are

one

or

more

group

managers,

but

only

one

acts

as

primary

and

the

others,

as

replicas.

They

are

responsible

to

maintain

availability

information

of

group

machines.

Moreover,

group

managers

maintain

references

to

data

resources

of

the

group.

They

use

group

repositories

to

persist

and

recover

the

location

of

nodes

and

their

availability.

To

control

process

execution,

there

are

one

or

more

process

coordinators

per

group.

They

are

responsible

to

instantiate

and

execute

processes

and

controllers,

select

resources,

and

schedule

and

dispatch

activities

to

workers.

In

order

to

persist

and

recover

process

execution

and

data,

and

also

load

process

specification,

they

use

group

repositories.

Finally,

in

several

group

nodes

there

is

an

activity

manager.

It

is

responsible

to

execute

activities

in

the

hosted

machine

on

behalf

of

the

group

process

coordinators,

and

to

inform

the

current

availability

of

the

associated

machine

to

group

managers.

They

also

have

pendent

activity

queues,

containing

activities

to

be

executed.

Inter-group

Relationships

In

order

to

model

real

grid

architecture,

the

infrastructure

must

comprise

several,

potentially

all,

local

networks,

like

Internet

does.

Aiming

to

satisfy

this

intent,

local

groups

are

Middleware

Companion

GM

GM

GM

GM

Figure

Inter-group

relationships

connected

to

others,

directly

or

indirectly,

through

its

group

managers

(see

Figure

Each

group

manager

deals

with

requests

of

its

group

(represented

by

dashed

ellipses),

in

order

to

register

local

machines

and

maintain

correspondent

availability.

Additionally,

group

managers

communicate

to

group

managers

of

other

groups.

Each

group

manager

exports

coarse

availability

information

to

group

managers

of

adjacent

groups

and

also

receives

requests

from

other

external

services

to

furnish

detailed

availability

information.

In

this

way,

if

there

are

resources

available

in

external

groups,

it

is

possible

to

send

processes,

controllers

and

activities

to

these

groups

in

order

to

execute

them

in

external

process

coordinators

and

activity

managers,

respectively.

PROCESS

EXECUTION

In

the

proposed

grid

architecture,

a

process

is

specified

in

XML,

using

controllers

to

determine

control

flow;

referencing

other

processes

and

activities;

and

passing

objects

to

their

parameters

in

order

to

define

data

flow.

After

specified,

the

process

is

compiled

in

a

set

of

classes,

which

represent

specific

process,

activity

and

controller

types.

At

this

time,

it

can

be

instantiated

and

executed

by

a

process

coordinator.

Dynamic

Model

To

execute

a

specified

process,

it

must

be

instantiated

by

referencing

its

type

on

a

process

coordinator

service

of

a

specific

group.

Also,

the

initial

parameters

must

be

passed

to

it,

and

then

it

can

be

started.

The

process

coordinator

carries

out

the

process

by

executing

the

process

elements

included

in

its

body

sequentially.

If

the

element

is

a

process

or

a

controller,

the

process

coordinator

can

choose

to

execute

it

in

the

same

machine

or

to

pass

it

to

another

process

coordinator

in

a

remote

machine,

if

available.

Else,

if

the

element

is

an

activity,

it

passes

to

an

activity

manager

of

an

available

machine.

Process

coordinators

request

the

local

group

manager

to

find

available

machines

that

contain

the

required

service,

process

coordinator

or

activity

manager,

in

order

to

execute

a

process

element.

Then,

it

can

return

a

local

machine,

a

machine

in

another

group

or

none,

depending

on

the

availability

of

such

resource

in

the

grid.

It

returns

an

external

worker

(activity

manager

machine)

if

there

are

no

available

workers

in

the

local

group;

and,

it

returns

an

external

process

server

(process

coordinator

machine),

if

there

are

no

available

process

servers

or

workers

in

the

local

group.

Obeying

this

rule,

group

managers

try

to

find

process

servers

in

the

same

group

of

the

available

workers.

Such

procedure

is

followed

recursively

by

all

process

coGM

FindPrimes

Activity

AM

FindPrimes

Activity

AM

FindPrimes

Activity

AM

FindPrimes

Process

PC

Figure

FindPrimes

process

execution

ordinators

that

execute

subprocesses

or

controllers

of

a

process.

Therefore,

because

processes

are

structured

by

nesting

process

elements,

the

process

execution

is

automatically

distributed

hierarchically

through

one

or

more

grid

groups

according

to

the

availability

and

locality

of

computing

resources.

The

advantage

of

this

distribution

model

is

wide

area

execution,

which

takes

advantage

of

potentially

all

grid

resources;

and

localized

communication

of

process

elements,

because

strong

dependent

elements,

which

are

under

the

same

controller,

are

placed

in

the

same

or

near

groups.

Besides,

it

supports

easy

monitoring

and

steering,

due

to

its

structured

controllers,

which

maintain

state

and

control

over

its

inner

elements.

Process

Execution

Example

Revisiting

the

example

shown

in

Section

a

process

type

is

specified

to

find

prime

numbers

in

a

certain

range

of

numbers.

In

order

to

solve

this

problem,

it

creates

a

number

of

activities

using

the

parfor

controller.

Each

activity,

then,

finds

primes

in

a

determined

part

of

the

range

of

numbers.

Figure

shows

an

instance

of

this

process

type

executing

over

the

proposed

infrastructure.

A

FindPrimes

process

instance

is

created

in

an

available

process

coordinator

(PC),

which

begins

executing

the

parfor

controller.

In

each

iteration

of

this

controller,

the

process

coordinator

requests

to

the

group

manager

(GM)

an

available

activity

manager

(AM)

in

order

to

execute

a

new

instance

of

the

FindPrimes

activity.

If

there

is

any

AM

available

in

this

group

or

in

an

external

one,

the

process

coordinator

sends

the

activity

class

and

initial

parameters

to

this

activity

manager

and

requests

its

execution.

Else,

if

no

activity

manager

is

available,

then

the

controller

enters

in

a

wait

state

until

an

activity

manager

is

made

available,

or

is

created.

In

parallel,

whenever

an

activity

finishes,

its

result

is

sent

back

to

the

process

coordinator,

which

records

it

in

the

parfor

controller.

Then,

the

controller

waits

until

all

activities

that

have

been

started

are

finished,

and

it

ends.

At

this

point,

the

process

coordinator

verifies

that

there

is

no

other

process

element

to

execute

and

finishes

the

process.

RELATED

WORK

There

are

several

academic

and

commercial

products

that

promise

to

support

grid

computing,

aiming

to

provide

interfaces,

protocols

and

services

to

leverage

the

use

of

widely

Middleware

for

Grid

Computing

distributed

resources

in

heterogeneous

and

autonomous

networks.

Among

them,

Globus

Condor-G

and

Legion

are

widely

known.

Aiming

to

standardize

interfaces

and

services

to

grid,

the

Open

Grid

Services

Architecture

(OGSA)

has

been

defined.

The

grid

architectures

generally

have

services

that

manage

computing

resources

and

distribute

the

execution

of

independent

tasks

on

available

ones.

However,

emerging

architectures

maintain

task

dependencies

and

automatically

execute

tasks

in

a

correct

order.

They

take

advantage

of

these

dependencies

to

provide

automatic

recovery,

and

better

distribution

and

scheduling

algorithms.

Following

such

model,

WebFlow

is

a

process

specification

tool

and

execution

environment

constructed

over

CORBA

that

allows

graphical

composition

of

activities

and

their

distributed

execution

in

a

grid

environment.

Opera-G

like

WebFlow,

uses

a

process

specification

language

similar

to

the

data

flow

diagram

and

workflow

languages,

but

furnishes

automatic

execution

recovery

and

limited

steering

of

process

execution.

The

previously

referred

architectures

and

others

that

enact

processes

over

the

grid

have

a

centralized

coordination.

In

order

to

surpass

this

limitation,

systems

like

SwinDew

proposed

a

widely

distributed

process

execution,

in

which

each

node

knows

where

to

execute

the

next

activity

or

join

activities

in

a

peer-to-peer

environment.

In

the

specific

area

of

activity

distribution

and

scheduling,

emphasized

in

this

work,

GridFlow

is

remarkable.

It

uses

a

two-level

scheduling:

global

and

local.

In

the

local

level,

it

has

services

that

predict

computing

resource

utilization

and

activity

duration.

Based

on

this

information,

GridFlow

employs

a

PERT-like

technique

that

tries

to

forecast

the

activity

execution

start

time

and

duration

in

order

to

better

schedule

them

to

the

available

resources.

The

architecture

proposed

in

this

paper,

which

encompasses

a

programming

model

and

an

execution

support

infrastructure,

is

widely

decentralized,

differently

from

WebFlow

and

Opera-G,

being

more

scalable

and

fault-tolerant.

But,

like

the

latter,

it

is

designed

to

support

execution

recovery.

Comparing

to

SwinDew,

the

proposed

architecture

contains

widely

distributed

process

coordinators,

which

coordinate

processes

or

parts

of

them,

differently

from

SwinDew

where

each

node

has

a

limited

view

of

the

process:

only

the

activity

that

starts

next.

This

makes

easier

to

monitor

and

control

processes.

Finally,

the

support

infrastructure

breaks

the

process

and

its

subprocesses

for

grid

execution,

allowing

a

group

to

require

another

group

for

the

coordination

and

execution

of

process

elements

on

behalf

of

the

first

one.

This

is

different

from

GridFlow,

which

can

execute

a

process

in

at

most

two

levels,

having

the

global

level

as

the

only

responsible

to

schedule

subprocesses

in

other

groups.

This

can

limit

the

overall

performance

of

processes,

and

make

the

system

less

scalable.

CONCLUSION

AND

FUTURE

WORK

Grid

computing

is

an

emerging

research

field

that

intends

to

promote

distributed

and

parallel

computing

over

the

wide

area

network

of

heterogeneous

and

autonomous

administrative

domains

in

a

seamless

way,

similar

to

what

Internet

does

to

the

data

sharing.

There

are

several

products

that

support

execution

of

independent

tasks

over

grid,

but

only

a

few

supports

the

execution

of

processes

with

interdependent

tasks.

In

order

to

address

such

subject,

this

paper

proposes

a

programming

model

and

a

support

infrastructure

that

allow

the

execution

of

structured

processes

in

a

widely

distributed

and

hierarchical

manner.

This

support

infrastructure

provides

automatic,

structured

and

recursive

distribution

of

process

elements

over

groups

of

available

machines;

better

resource

use,

due

to

its

on

demand

creation

of

process

elements;

easy

process

monitoring

and

steering,

due

to

its

structured

nature;

and

localized

communication

among

strong

dependent

process

elements,

which

are

placed

under

the

same

controller.

These

features

contribute

to

better

scalability,

fault-tolerance

and

control

for

processes

execution

over

the

grid.

Moreover,

it

opens

doors

for

better

scheduling

algorithms,

recovery

mechanisms,

and

also,

dynamic

modification

schemes.

The

next

work

will

be

the

implementation

of

a

recovery

mechanism

that

uses

the

execution

and

data

state

of

processes

and

controllers

to

recover

process

execution.

After

that,

it

is

desirable

to

advance

the

scheduling

algorithm

to

forecast

machine

use

in

the

same

or

other

groups

and

to

foresee

start

time

of

process

elements,

in

order

to

use

this

information

to

pre-allocate

resources

and,

then,

obtain

a

better

process

execution

performance.

Finally,

it

is

interesting

to

investigate

schemes

of

dynamic

modification

of

processes

over

the

grid,

in

order

to

evolve

and

adapt

long-term

processes

to

the

continuously

changing

grid

environment.

ACKNOWLEDGMENTS

We

would

like

to

thank

Paulo

C.

Oliveira,

from

the

State

Treasury

Department

of

Sao

Paulo,

for

its

deeply

revision

and

insightful

comments.

REFERENCES

E.

Akarsu,

G.

C.

Fox,

W.

Furmanski,

and

T.

Haupt.

WebFlow:

High-Level

Programming

Environment

and

Visual

Authoring

Toolkit

for

High

Performance

Distributed

Computing.

In

Proceedings

of

Supercom

puting

T.

Andrews

and

F.

Curbera.

Specification:

Business

Process

Execution

Language

for

W

eb

Services

V

ersion

IBM

DeveloperWorks,

Available

at

W.

Bausch.

O

PERA

-G

:A

M

icrokernelfor

Com

putationalG

rids.

PhD

thesis,

Swiss

Federal

Institute

of

Technology,

Zurich,

T.

Bray

and

J.

Paoli.

Extensible

M

arkup

Language

(X

M

L)

XML

Core

WG,

Available

at

J.

Cao,

S.

A.

Jarvis,

S.

Saini,

and

G.

R.

Nudd.

GridFlow:

Workflow

Management

for

Grid

Computing.

In

Proceedings

ofthe

International

Sym

posium

on

Cluster

Com

puting

and

the

G

rid

(CCG

rid

I.

Foster

and

C.

Kesselman.

Globus:

A

Metacomputing

Infrastructure

Toolkit.

Intl.J.

Supercom

puter

A

pplications,

I.

Foster,

C.

Kesselman,

J.

M.

Nick,

and

S.

Tuecke.

The

Physiology

ofthe

G

rid:

A

n

O

pen

G

rid

Services

A

rchitecture

for

D

istributed

System

s

Integration.

Middleware

Companion

Open

Grid

Service

Infrastructure

WG,

Global

Grid

Forum,

I.

Foster,

C.

Kesselman,

and

S.

Tuecke.

The

Anatomy

of

the

Grid:

Enabling

Scalable

Virtual

Organization.

The

Intl.JournalofH

igh

Perform

ance

Com

puting

A

pplications,

J.

Frey,

T.

Tannenbaum,

M.

Livny,

I.

Foster,

and

S.

Tuecke.

Condor-G:

A

Computational

Management

Agent

for

Multi-institutional

Grids.

In

Proceedings

of

the

Tenth

Intl.Sym

posium

on

H

igh

Perform

ance

D

istributed

Com

puting

(H

PD

IEEE,

A.

S.

Grimshaw

and

W.

A.

Wulf.

Legion

A

View

from

Feet.

In

Proceedings

ofthe

Fifth

Intl.

Sym

posium

on

H

igh

Perform

ance

D

istributed

Com

puting.

IEEE,

T.

Lindholm

and

F.

Yellin.

The

Java

V

irtualM

achine

Specification.

Sun

Microsystems,

Second

Edition

edition,

B.

R.

Schulze

and

E.

R.

M.

Madeira.

Grid

Computing

with

Active

Services.

Concurrency

and

Com

putation:

Practice

and

Experience

Journal,

J.

Yan,

Y.

Yang,

and

G.

K.

Raikundalia.

Enacting

Business

Processes

in

a

Decentralised

Environment

with

Workflow

Support.

In

Proceedings

of

the

Fourth

Intl.Conference

on

W

eb-Age

Inform

ation

M

anagem

ent(W

A

IM

Middleware

for

Grid

Computing

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

distributed system
distributed application
distributed scheduling
hierarchical process execution
process support
distribute middleware

process execution
grid computing
distributed process
distributed execution
distributed computing
parallel computing
parallel execution
process description
grid architecture
scheduling algorithm


Sensor

Deployment

Strategy

for

Target

Detection

Thomas

Clouqueur,

Veradej

Phipatanasuphorn,

Parameswaran

Ramanathan

and

Kewal

K.

Saluja

University

of

Wisconsin-Madison

Engineering

Drive

Madison,

WI

clouqueu@ece.wisc.edu

ABSTRACT

In

order

to

monitor

a

region

for

traffic

traversal,

sensors

can

be

deployed

to

perform

collaborative

target

detection.

Such

a

sensor

network

achieves

a

certain

level

of

detection

performance

with

an

associated

cost

of

deployment.

This

paper

addresses

this

problem

by

proposing

path

exposure

as

a

measure

of

the

goodness

of

a

deployment

and

presents

an

approach

for

sequential

deployment

in

steps.

It

illustrates

that

the

cost

of

deployment

can

be

minimized

to

achieve

the

desired

detection

performance

by

appropriately

choosing

the

number

of

sensors

deployed

in

each

step.

Categories

and

Subject

Descriptors

[Computer-Communication

Networks]:

Distributed

Systems-distributed

applications;

[Special-purpose

and

Application-based

Systems]:

[signal

processing

systems]

General

Terms

Algorithms,

Design,

Performance

INTRODUCTION

Recent

advances

in

computing

hardware

and

software

are

responsible

for

the

emergence

of

sensor

networks

capable

of

observing

the

environment,

processing

the

data

and

making

decisions

based

on

the

observations.

Such

a

network

can

be

used

to

monitor

the

environment,

detect,

classify

and

locate

specific

events,

and

track

targets

over

a

specific

region.

Examples

of

such

systems

are

in

surveillance,

monitoring

of

pollution,

traffic,

agriculture

or

civil

infrastructures

The

deployment

of

sensor

networks

varies

with

the

application

considered.

It

can

be

predetermined

when

the

environment

is

sufficiently

known

and

under

control,

in

which

case

the

sensors

can

be

strategically

hand

placed.

The

deployment

can

also

be

a

priori

undetermined

when

the

environment

is

unknown

or

hostile

in

which

case

the

sensors

may

be

airdropped

from

an

aircraft

or

deployed

by

other

means,

generally

resulting

in

a

random

placement.

This

paper

investigates

deployment

strategies

for

sensor

networks

performing

target

detection

over

a

region

of

interest.

In

order

to

detect

a

target

moving

through

the

region,

sensors

have

to

make

local

observations

of

the

environment

and

collaborate

to

produce

a

global

decision

that

reflects

the

status

of

the

region

covered

This

collaboration

requires

local

processing

of

the

observations,

communication

between

different

nodes,

and

information

fusion

Since

the

local

observations

made

by

the

sensors

depend

on

their

position,

the

performance

of

the

detection

algorithm

is

a

function

of

the

deployment.

One

possible

measure

of

the

goodness

of

deployment

for

target

detection

is

called

path

exposure.

It

is

a

measure

of

the

likelihood

of

detecting

a

target

traversing

the

region

using

a

given

path.

The

higher

the

path

exposure,

the

better

the

deployment.

The

set

of

paths

to

be

considered

may

be

constrained

by

the

environment.

For

example,

if

the

target

is

expected

to

be

following

a

road,

only

the

paths

consisting

of

the

roads

need

to

be

considered.

In

this

study,

the

deployment

is

assumed

to

be

random

which

corresponds

to

many

practical

applications

where

the

region

to

be

monitored

is

not

accessible

for

precise

placement

of

sensors.

The

focus

of

this

paper

is

to

determine

the

number

of

sensors

to

be

deployed

to

carry

out

target

detection

in

a

region

of

interest.

The

tradeoffs

lie

between

the

network

performance,

the

cost

of

the

sensors

deployed,

and

the

cost

of

deploying

the

sensors.

This

paper

is

organized

as

follows.

In

section

a

definition

for

path

exposure

is

proposed

and

a

method

to

evaluate

the

exposure

of

a

given

path

is

developed.

In

section

the

problem

of

random

deployment

is

formulated

and

several

solutions

are

presented.

An

analytical

study

of

these

solutions

is

given

in

section

and

section

presents

simulation

results

that

are

used

in

section

to

determine

the

optimum

solution

for

a

given

environment.

The

paper

concludes

with

section

PATH

EXPOSURE

In

this

section,

a

model

for

sensor

network

target

detection

is

proposed,

a

definition

of

path

exposure

is

presented

and

expressions

for

evaluating

this

path

exposure

are

developed.

Model

Consider

a

rectangular

sensor

field

with

n

sensors

ployed

at

locations

si,

i

n.

A

target

at

location

u

emits

a

signal

which

is

measured

by

the

sensors.

The

signal

from

the

target

decays

as

a

polynomial

of

the

distance.

If

the

decay

coefficient

is

k,

the

signal

energy

of

a

target

at

location

u

measured

by

the

sensor

at

si

is

given

by

Si(u)

K

||u

si||k

where

K

is

the

energy

emitted

by

the

target

and

||u

si||

is

the

geometric

distance

between

the

target

and

the

sensor.

Depending

on

the

environment

the

value

k

typically

ranges

from

to

Energy

measurements

at

a

sensor

are

usually

corrupted

by

noise.

If

Ni

denotes

the

noise

energy

at

sensor

i

during

a

particular

measurement,

then

the

total

energy

measured

at

sensor

i,

when

the

target

is

at

location

u,

is

Ei(u)

Si(u)

Ni

K

||u

si||k

Ni.

The

sensors

collaborate

to

arrive

at

a

consensus

decision

as

to

whether

a

target

is

present

in

the

region.

We

consider

two

basic

approaches

for

reaching

this

consensus:

Value

fusion

and

Decision

fusion

In

value

fusion,

one

of

the

sensors

gathers

the

energy

measurements

from

the

other

sensors,

totals

up

the

energy

and

compares

the

sum

to

a

threshold

to

decide

whether

a

target

is

present.

If

the

sum

exceeds

the

threshold,

then

the

consensus

decision

is

that

a

target

is

present.

In

contrast,

in

decision

fusion,

each

individual

sensor

compares

its

energy

measurement

to

a

threshold

to

arrive

at

a

local

decision

as

to

whether

a

target

is

present.

The

local

decisions

for

target

present

and

otherwise)

from

the

sensors

are

totaled

at

a

sensor

and

the

sum

is

compared

to

another

threshold

to

arrive

at

the

consensus

decision.

In

some

situations,

value

fusion

outperforms

decision

fusion

and

vice

versa.

Value

Fusion.

The

probability

of

consensus

target

detection

when

the

target

is

at

location

u

is

Dv(u)

Prob

n

K

||u

si||k

Ni

η

Prob

n

Ni

η

n

K

||u

si||k

where

η

is

the

value

fusion

threshold.

If

the

noise

processes

at

the

sensors

are

independent,

then

the

probability

density

function

of

n

Ni

equals

the

convolution

of

the

probability

density

function

of

Ni,

i

n.

In

particular,

if

the

noise

process

at

each

sensor

is

Additive

White

Gaussian

Noise

(AWGN),

then

n

Ni

has

a

Chi-square

distribution

of

degree

n.

Due

to

the

presence

of

noise,

the

sensors

may

incorrectly

decide

that

a

target

is

present

even

though

there

is

no

target

in

the

field.

The

probability

of

a

consensus

false

target

detection

is

Fv

Prob

n

Ni

η

As

above,

if

the

noise

processes

at

the

sensors

are

independent

and

AWGN,

then

the

false

alarm

probability

can

be

computed

from

the

Chi-square

distribution

of

degree

n.

Decision

Fusion.

For

decision

fusion,

the

probability

of

consensus

target

detection

when

the

target

is

located

at

u

is

Dd(u)

Prob

n

hd,i(u)

η2

n

n

j

j

(n−j)

where

Prob

[hd,i(u)

Prob

Ni

η1

K

||u

si||k

and

Prob

[hd,i(u)

Prob

[hd,i(u)

can

be

computed

from

Chi-square

distribution

of

degree

for

AWGN

noise

process.

The

probability

of

false

target

detection

at

sensor

i

is

Prob[gd,i

Prob[Ni

and

Prob[gd,i

Prob[gd,i

Therefore,

the

probability

of

consensus

false

target

detection

is

Fd

Prob

n

gd,i

η2

n

n

j

(Prob

[gd,i

(Prob

[gd,i

The

above

equations

serve

as

an

analytic

basis

for

evaluating

exposure

as

defined

in

the

following

subsection.

Note

that

in

value

and

decision

fusion

the

knowledge

of

the

sensors

location

can

be

used

to

make

the

detection

decision.

For

example,

a

sensor

can

report

values

that

differ

substantially

from

its

neighbors

values.

This

discrepancy

can

be

analyzed

to

avoid

false

alarms

or

misses

and

therefore

improve

the

detection

performance.

However,

such

algorithms

are

not

considered

in

this

paper.

De£nition

of

exposure

We

define

exposure

to

be

the

probability

of

detecting

the

target

or

an

intruder

carrying

out

the

unauthorized

activity,

where

the

activity

depends

on

the

problem

under

consideration.

In

this

paper,

the

activity

considered

is

the

Unauthorized

Traversal

(UT)

as

defined

below.

Unauthorized

Traversal

(UT)

Problem:

We

are

given

a

sensor

field

with

n

sensors

at

locations

sn

(see

Figure

We

are

also

given

the

stochastic

characterization

of

the

noise

at

each

sensor

and

a

tolerable

bound,

α,

on

the

false

alarm

probability.

Let

P

denote

a

path

from

the

west

to

the

east

periphery

of

the

sensor

field.

A

target

traversing

the

sensor

field

using

path

P

is

detected

if

it

is

detected

at

some

point

u

P.

The

exposure

of

path

P

is

the

net

probability

of

detecting

a

target

that

traverses

the

field

using

P.

The

target

is

assumed

to

be

able

to

follow

any

path

through

the

field

and

the

problem

is

to

find

the

path

P

with

the

least

exposure.

Sensor

Figure

Example

sensor

fields

for

UT

problem.

Solution

to

the

UT

problem

Let

P

denote

a

path

from

the

west

to

the

east

periphery

through

the

sensor

field.

A

target

that

traverses

the

field

using

P

is

not

detected

if

and

only

if

it

is

not

detected

at

any

time

while

it

is

on

that

path.

Since

detection

attempts

by

the

sensor

network

occur

at

a

fixed

frequency,

we

can

associate

each

detection

attempt

with

a

point

u

P

when

assuming

that

the

target

traverses

the

field

at

a

constant

speed.

The

detection

attempts

are

based

on

energy

measured

over

a

period

of

time

T

during

which

the

target

is

moving.

Therefore,

the

detection

probability

associated

with

each

point

u

reflects

the

measurements

performed

during

time

T.

Considering

the

path,

the

net

probability

of

not

detecting

a

target

traversing

the

field

using

P

is

the

product

of

the

probabilities

of

no

detection

at

each

point

u

P.

That

is,

if

G(P)

denotes

the

net

probability

of

not

detecting

a

target

as

it

traverses

over

path

P,

then,

log

G(P)

u∈P

D(u))du,

where

D(u)

is

either

Dv(u)

of

Dd(u)

depending

on

whether

the

sensors

use

value

or

decision

fusion

to

arrive

at

a

consensus

decision.

Since

the

exposure

of

P

is

G(P)),

the

problem

is

to

find

the

path

which

minimizes

G(P))

or

equivalently

the

path

that

minimizes

log

In

general,

the

path

P

that

minimizes

log

G(P)|

can

be

fairly

arbitrary

in

shape.

The

proposed

solution

does

not

exactly

compute

this

path.

Instead,

we

rely

on

the

following

approximation.

We

first

divide

the

sensor

field

into

a

fine

grid

and

then

assume

that

the

target

only

moves

along

this

grid.

The

problem

then

is

to

find

the

path

P

on

this

grid

that

minimizes

log

G(P)|.

Note

that,

the

finer

the

grid

the

closer

the

approximation.

Also,

one

can

use

higher

order

grids

such

as

in

instead

of

the

rectangular

grid

we

use

in

this

paper.

The

higher

order

grids

change

the

runtime

of

the

algorithm

but

the

approach

is

the

same

as

with

the

rectangular

grid.

For

the

target

not

to

be

detected

at

any

point

u

P,

Note

that,

G(P)

lies

between

and

and

thus

log

G(P)

is

negative.

Generate

a

suitably

fine

rectangular

grid.

For

each

line

segment

l

between

adjacent

grid

points

Compute

log

ml|

using

Equation

Assign

l

a

weight

equal

to

log

ml|

Endfor

Add

a

link

from

virtual

point

a

to

each

grid

point

on

the

west

Add

a

link

from

virtual

point

b

to

each

grid

point

on

the

east

Assign

a

weight

of

to

all

the

line

segments

from

a

and

b

Compute

the

least

weight

path

P

from

a

to

b

using

Dijkstra"s

algorithm

Let

w

equal

the

total

weight

of

P.

Return

P

as

the

least

exposure

path

with

an

exposure

equal

to

Figure

Pseudo-code

of

the

proposed

solution

for

the

UT

problem.

it

need

not

be

detected

at

any

point

u

lying

between

any

two

adjacent

grid

points

of

P.

We

therefore

subdivide

any

path

P

as

a

chain

of

grid

segments.

Let

us

consider

two

adjacent

points,

say

and

on

the

grid.

Let

l

denote

the

line

segment

between

and

Also,

let

ml

denote

the

probability

of

not

detecting

a

target

traveling

between

and

on

the

line

segment

l.

Then,

from

the

discussion

above,

log

ml

u∈l

D(u))du

The

probability

ml

can

be

evaluated

by

finding

the

detection

probability

D(u)

at

each

point

u

l.

Note

that,

ml

lies

between

and

and,

therefore,

log

ml

is

negative.

To

find

the

least

exposed

path,

a

non-negative

weight

equal

to

log

ml|

is

assigned

to

each

segment

l

on

this

grid.

Also,

a

fictitious

point

a

is

created

and

a

line

segment

is

added

from

a

to

each

grid

point

on

the

west

periphery

of

the

sensor

field.

A

weight

equal

to

is

assigned

to

each

of

these

line

segments.

Similarly,

a

fictitious

point

b

is

created

and

a

line

segment

is

added

from

b

to

each

grid

point

on

the

east

periphery

of

the

sensor

field.

A

weight

equal

to

is

assigned

to

each

of

these

line

segments.

The

problem

of

finding

the

least

exposed

path

from

west

periphery

to

east

periphery

is

then

equivalent

to

the

problem

of

finding

the

least

weight

path

from

a

to

b

on

this

grid.

Such

a

path

can

be

efficiently

determined

using

the

Dijkstra"s

shortest

path

algorithm

A

pseudo-code

of

the

overall

algorithm

is

shown

in

Figure

Example:

Figure

shows

a

sensor

field

with

eight

sensors

at

locations

marked

by

dark

circles.

Assume

the

noise

process

at

each

sensor

is

Additive

White

Gaussian

with

mean

and

variance

Further

assume

that

the

sensors

use

value

fusion

to

arrive

at

a

consensus

decision.

Then,

from

Equation

we

chose

a

threshold

η

to

achieve

a

false

alarm

probability

of

The

field

has

been

divided

into

a

grid.

The

target

emits

an

energy

K

and

the

energy

decay

factor

is

The

figure

shows

the

weight

assigned

to

each

line

segment

in

the

grid

as

described

above.

The

least

exposure

path

found

by

the

Dijkstra"s

algorithm

for

this

weighted

grid

is

highlighted.

The

probability

of

Fictitious

Fictitious

Threshold

Detection

Probability

of

the

Path

Point

A

Point

0.030.030.030.050.060.070.040.020.100.03

0.000.010.010.220.420.440.240.020.000.00

0.010.010.010.050.480.490.060.010.010.01

0.850.390.190.120.361.361.210.270.610.53

Sensor

Edge

Weight

Figure

Illustration

of

the

proposed

solution

for

an

example

UT

problem.

tecting

the

target

traversing

the

field

using

the

highlighted

path

is

DEPLOYMENT

In

this

section,

the

problem

of

sensor

deployment

for

unauthorized

traversal

detection

is

formulated

and

solutions

are

identified.

Problem

formulation

Consider

a

region

to

be

monitored

for

unauthorized

traversal

using

a

sensor

network.

The

target

to

traverse

the

sensor

field

emits

a

given

energy

level

K

and

the

stochastic

of

the

noise

in

the

region

is

known.

The

sensors

are

to

be

deployed

over

the

region

in

a

random

fashion

where

the

sensors

locations

in

the

region

are

a

priori

undetermined

and

only

the

number

or

density

of

sensors

can

be

chosen.

The

problem

is

to

find

a

deployment

strategy

that

results

in

a

desired

performance

level

in

unauthorized

traversal

monitoring

of

the

region.

This

performance

is

measured

by

the

false

alarm

probability

and

the

path

exposure

defined

in

section

The

false

alarm

probability

does

not

depend

on

the

sensor

placement

and

is

only

determined

by

the

number

of

sensors

deployed

and

the

thresholds

used

in

the

detection

algorithms.

It

is

assumed

to

be

fixed

in

this

study

so

that

the

problem

consists

of

maximizing

the

exposure

at

constant

false

alarm

rate.

Since

targets

can

traverse

the

region

through

any

path,

the

goal

of

deployment

is

to

maximize

the

exposure

of

the

least

exposed

path

in

the

region.

Obviously,

the

minimum

exposure

in

the

region

increases

(if

false

alarm

rate

is

kept

constant)

as

more

sensors

are

deployed

in

the

region.

However,

since

the

deployment

is

random,

there

are

no

guarantees

that

the

desired

exposure

level

is

achieved

for

a

given

number

of

sensors.

Indeed

some

sensor

placements

can

result

in

very

poor

detection

ability,

in

particular

when

the

sensors

are

all

deployed

in

the

same

vicinity.

A

study

of

the

statistical

distribution

of

exposure

for

varying

sensor

placement

for

a

given

number

of

sensors

can

provide

a

confidence

level

that

the

desired

detection

level

is

achieved.

In

practical

situations,

only

a

limited

number

of

sensors

are

available

for

deployment

and

only

a

limited

detection

level

with

associated

confidence

level

is

achievable

at

a

given

false

alarm

rate.

Solution

Based

on

the

above

discussion,

we

develop

a

solution

method

to

the

deployment

problem

when

a

maximum

of

M

sensors

can

be

used.

Deploying

the

M

sensors

results

in

the

maximum

achievable

detection

level

but

is

not

optimal

when

considering

the

cost

of

sensors.

To

reduce

the

number

of

sensors

deployed,

only

part

of

the

available

sensors

can

be

deployed

first

and

the

sensors

can

then

report

their

position.

The

random

sensor

placement

obtained

can

be

analyzed

to

determine

if

it

satisfies

the

desired

performance

level.

If

it

does

not,

additional

sensors

can

be

deployed

until

the

desired

exposure

level

is

reached

or

until

the

all

M

available

sensors

are

deployed.

The

number

of

sensors

used

in

this

strategy

can

be

minimized

by

deploying

one

sensor

at

a

time.

However,

a

cost

is

usually

associated

with

each

deployment

of

sensors

and

deploying

one

sensor

at

a

time

may

not

be

cost

effective

if

the

cost

of

deployment

is

sufficiently

large

with

respect

to

the

cost

of

single

sensors.

By

assigning

a

cost

to

both

single

sensors

and

deployment,

the

optimal

number

of

sensors

to

be

deployed

at

first

and

thereafter

can

be

determined.

In

the

next

section,

we

develop

analytical

expressions

for

finding

the

optimal

solution.

In

general,

the

optimal

cost

solution

is

neither

deploying

one

sensor

at

a

time

nor

deploying

all

the

sensors

at

a

time.

ANALYTICAL

SOLUTION

In

this

section,

we

derive

an

analytical

model

for

the

cost

of

deployment.

Let

ed

be

the

desired

minimum

exposure

for

the

sensor

network

to

be

deployed

when

a

maximum

of

M

sensors

are

available

for

deployment.

The

position

of

sensors

are

random

in

the

region

of

interest

R

and

for

a

given

Minimum

exposure

Density

Minimum

exposure

Density

Minimum

exposure

Density

sensors

sensors

sensors

Figure

Probability

density

function

for

the

distribution

of

minimum

exposure

for

deployments

of

and

sensors.

ber

of

sensors

n,

the

least

exposure

e

is

a

random

variable.

Let

Fn(x)

denote

the

cumulative

distribution

function

of

e,

that

is

the

probability

that

e

is

less

than

x,

when

n

sensors

are

deployed.

As

mentioned

in

the

previous

section,

there

is

no

a

priori

guarantee

that

the

exposure

ed

will

be

obtained

when

deploying

the

sensors.

If

M

is

the

maximum

number

of

sensors

available,

the

confidence

of

obtaining

a

least

exposure

of

ed

or

more

is

(ed).

For

the

proposed

solution,

we

assume

that

the

position

of

the

sensors

obtained

after

a

deployment

is

known

so

that

additional

sensors

can

be

deployed

if

the

minimum

exposure

ed

is

not

reached.

To

evaluate

the

probability

that

the

exposure

ed

is

reached

after

additional

sensor

deployment,

we

make

the

following

approximation:

the

distribution

of

exposure

for

n

sensors

is

independent

of

the

exposure

corresponding

to

k

of

these

n

sensors,

k

n

This

is

an

approximation

since

the

exposure

obtained

with

n

sensors

is

always

higher

than

the

exposure

obtained

with

only

k

of

these

n

sensors,

k

n

We

observed

that

the

re-deployment

of

just

a

few

sensors

can

substantially

modify

the

coverage

of

the

region,

for

example

when

filling

empty

spaces.

The

approximation

is

also

justified

by

the

loose

relation

between

exposure

and

sensors

positions.

Indeed,

a

given

minimum

exposure

can

correspond

to

many

different

deployment

positions,

some

of

which

can

be

easily

improved

by

deploying

a

few

additional

sensors

(e.g.

when

there

is

a

empty

space

in

the

region

coverage),

some

of

which

can

only

be

improved

by

deploying

many

additional

sensors

(e.g.

when

the

sensors

are

evenly

distributed

on

the

region).

As

the

minimum

exposure

e

is

a

random

variable,

the

cost

of

deploying

the

sensors

in

steps

until

the

desired

exposure

is

reached

is

also

a

random

variable

C.

We

now

derive

the

expression

for

the

expected

value

of

C.

Let

ni

be

the

total

number

of

sensors

deployed

after

each

step

i

for

a

maximum

number

of

steps

S

so

that

nS

M.

Note

that

ni

is

the

number

of

sensors

deployed

at

step

i.

Also

let

Cd

be

the

cost

of

deploying

the

sensors

at

each

step

and

Cs

be

the

cost

of

each

sensor.

If

the

desired

exposure

is

obtained

after

the

first

step,

the

cost

of

deployment

is

Cd

and

this

Number

of

sensors

Probability

ed

ed

ed

ed

Figure

Probability

that

the

minimum

exposure

is

above

ed

for

varying

number

of

sensors

and

and

event

happens

with

probability

(ed).

Considering

all

the

possible

events,

the

expected

cost

is

given

by

E{C}

(i.Cd

ni.Cs)

Fnj

(ed)

Fni

(ed))

(S.Cd

M.Cs)

Fnj

(ed)

Note

that

a

different

expression

is

needed

for

the

cost

of

step

S

since

no

additional

sensors

are

deployed

after

this

step

even

when

the

desired

exposure

is

not

obtained.

SIMULATION

In

this

section,

we

present

results

of

simulations

that

were

conducted

to

collect

the

exposure

distribution

function

of

the

number

of

sensors

deployed.

Method

The

exposure

distribution

is

obtained

by

collecting

statistics

on

the

exposure

when

deploying

sensors

randomly

in

a

predefined

region.

The

random

deployment

is

assumed

to

be

uniformly

distributed

over

the

region,

which

is

a

local

approximation.

For

every

deployment,

the

minimum

exposure

is

found

using

a

simulator

implementing

the

algorithm

presented

in

section

A

decay

factor

of

k

and

maximum

energy

of

K

are

chosen

to

model

the

energy

emitted

by

targets

(cf

Equation

The

region

monitored

is

of

size

with

a

noise

(AWGN)

of

variance

so

that

the

signal

coming

from

the

target

is

covered

by

noise

when

the

target

is

or

more

units

length

away

from

a

sensor.

The

sensors

use

value

fusion

to

collaborate

when

making

a

common

decision

on

the

presence

of

a

target

in

the

region.

The

threshold

for

detection

is

chosen

as

a

function

of

the

number

of

sensors

to

give

a

constant

false

alarm

probability.

The

false

alarm

probability

for

each

detection

attempt

is

chosen

so

that

the

probability

to

get

one

or

more

false

alarm

along

a

path

of

length

units

(corresponding

to

detection

attempts

by

the

sensors)

is

Cost

for

and

n

Expectedcost

Cost

for

and

n

Expectedcost

Cost

for

and

n

Expectedcost

Figure

Expected

cost

of

achieving

minimum

exposure

of

as

function

of

the

number

of

sensors

for

three

different

cost

assignments.

Distribution

of

minimum

exposure

The

distribution

of

minimum

exposure

were

found

for

the

number

of

sensor

deployed

varying

from

to

To

illustrate

our

results,

the

probability

density

functions

for

and

sensors

are

shown

in

Figure

We

observe

that

for

sensors

deployed,

the

minimum

exposure

has

zero

density

for

values

less

than

the

false

alarm

probability

of

The

highest

density

is

obtained

for

values

around

and

then

drops

exponentially

towards

zero

for

higher

values

of

exposure.

For

deployment

of

sensors,

we

find

again

that

the

minimum

exposure

has

zero

density

for

values

below

then

increases

and

has

about

constant

density

for

values

lying

between

and

We

also

observe

a

peak

of

density

around

For

deployment

of

sensors,

densities

start

at

zero

for

small

values

and

remain

very

small

for

most

values

of

minimum

exposure.

The

density

slowly

increases

and

has

a

large

peak

for

minimum

exposure

of

As

expected,

the

minimum

exposure

increases

on

average

as

the

number

of

sensors

deployed

increases.

When

randomly

deploying

sensors,

it

is

very

unlikely

to

obtain

a

placement

providing

a

desirable

minimum

exposure.

When

deploying

sensors,

most

of

the

exposure

levels

are

equally

likely

and

only

poor

confidence

is

given

to

obtain

a

desirable

exposure

level.

When

deploying

sensors,

it

is

very

likely

that

the

sensor

placement

will

give

good

exposure

and

this

likelihood

keeps

increasing

with

the

number

of

sensors

deployed.

We

use

the

cumulative

distribution

function

obtained

from

the

statistics

collected

to

evaluate

the

likelihood

that

the

desired

level

of

exposure

ed

is

obtained

for

varying

number

of

sensors.

The

graph

of

Figure

shows

the

probability

that

the

minimum

exposure

is

above

ed

as

a

function

of

the

number

of

sensors

deployed

for

ed

and

These

values

can

be

used

to

evaluate

the

cost

expressed

in

Equation

The

graph

shows

that

the

confidence

level

to

obtain

a

given

minimum

exposure

level

ed

increases

with

the

number

of

sensors

deployed.

The

confidence

for

ed

when

deploying

sensors

is

above

which

is

sufficient

for

most

applications,

and

therefore

we

did

not

evaluate

the

distribution

of

exposure

when

deploying

more

than

sensors.

RESULTS

In

this

section,

we

evaluate

the

expected

cost

of

deploying

sensors

using

the

simulation

results.

The

optimal

number

of

sensor

to

deploy

at

first

and

in

the

succeeding

steps

can

be

derived

from

these

results.

For

this

cost

analysis,

the

region

parameters

and

signal

model

are

the

same

as

specified

in

section

We

further

assume

that

the

number

of

sensors

deployed

at

every

step

is

constant

so

that

ni

n

for

all

i

S.

In

this

case,

Equation

reduces

to

E{C}

(Cd

n.Cs)

i.

Fj.n(ed)

Fi.n(ed))

(S.Cd

M.Cs)

Fj.n(ed)

We

evaluated

the

expected

cost

as

a

function

of

n

for

three

different

cost

assignments

with

a

desired

exposure

of

ed

The

three

corresponding

graphs

are

shown

in

Figure

The

first

cost

assignment

is

(Cd

Cs

so

that

the

expected

cost

is

the

expected

number

of

sensors

to

be

used

to

achieve

an

exposure

of

Since

Cd

the

number

of

steps

used

to

deploy

the

sensors

doesn"t

affect

the

cost

and

it

is

therefore

optimal

to

deploy

one

sensor

at

a

time

until

the

minimum

exposure

ed

is

reached,

as

we

observe

on

the

graph.

Overall,

the

expected

number

of

sensor

to

be

deployed

increases

with

n

but

we

observe

a

local

minimum

for

n

that

can

be

explained

by

the

following

analysis.

The

expected

number

of

sensors

is

a

weighted

sum

of

i.n,

i

S

that

are

the

different

number

of

sensors

than

can

be

deployed

at

a

time

when

deploying

n

sensors

at

each

step.

For

n

around

the

probability

that

the

minimum

exposure

is

above

ed

varies

a

lot

as

shown

in

Figure

and

the

weight

associated

with

the

first

term

of

the

sum

(n)

increases

rapidly

while

the

weights

associated

with

higher

number

of

sensors

decrease.

This

is

the

cause

of

the

local

minimum

and

the

cost

starts

to

increase

again

when

the

increase

in

n

compensates

for

the

decrease

in

weights.

The

second

cost

assignment

is

(Cd

Cs

so

that

the

cost

of

a

deployment

is

equal

to

the

cost

of

five

sensors

(note

that

only

the

relative

cost

of

Cd/Cs

determines

the

shape

of

the

graphs).

In

this

case,

deploying

one

sensor

at

a

time

is

prohibited

by

the

cost

of

deployment

and

the

optimal

number

of

sensors

to

deploy

at

every

step

is

Again,

we

find

that

the

curve

presents

a

local

minimum

for

n

that

is

due

to

the

variations

in

weights.

The

last

cost

assignment

is

(Cd

Cs

and

the

minimum

cost

is

achieved

when

deploying

sensors

at

every

step.

These

results

are

specific

to

the

region

and

the

parameters

characterizing

the

signal

emitted

by

the

target

that

were

chosen

for

the

simulation.

Similar

results

can

be

derived

for

other

parameters,

most

of

the

effort

residing

in

finding

the

exposure

distributions

through

simulation.

CONCLUSION

This

paper

addresses

the

problem

of

sensor

deployment

in

a

region

to

be

monitored

for

target

intrusion.

A

mechanism

for

sensor

collaboration

to

perform

target

detection

is

proposed

and

analyzed

to

evaluate

the

exposure

of

paths

through

the

region.

The

minimum

exposure

is

used

as

a

measure

of

the

goodness

of

deployment,

the

goal

being

to

maximize

the

exposure

of

the

least

exposed

path

in

the

region.

In

the

case

where

sensors

are

randomly

placed

in

a

region

to

be

monitored,

a

mechanism

for

sequential

deployment

in

steps

is

developed.

The

strategy

consists

of

deploying

a

limited

number

of

sensors

at

a

time

until

the

desired

minimum

exposure

is

achieved.

The

cost

function

used

in

this

study

depends

on

the

number

of

sensors

deployed

in

each

step

and

the

cost

of

each

deployment.

Through

simulation,

the

distribution

of

minimum

exposure

obtained

by

random

deployment

was

evaluated

for

varying

number

of

sensors

deployed.

These

results

were

used

to

evaluate

the

cost

of

deployment

for

varying

number

of

sensors

deployed

in

each

step.

We

found

that

the

optimal

number

of

sensors

deployed

in

each

step

varies

with

the

relative

cost

assigned

to

deployment

and

sensors.

The

results

of

this

study

can

be

extended

to

larger

regions

with

different

target

parameters.

The

solution

proposed

in

this

paper

can

also

be

improved

by

considering

deploying

variable

number

of

sensors

at

each

step

and

this

multiple

variables

problem

requires

further

investigation.

ACKNOWLEDGMENTS

This

work

was

supported

in

part

by

the

Defense

Advanced

Research

Projects

Agency

(DARPA)

and

the

Air

Force

research

Laboratory,

Air

Force

Material

Command,

USAF,

under

agreement

number

The

U.S.

Government

is

authorized

to

reproduce

and

distribute

reprints

for

Governmental

purposes

notwithstanding

any

copyright

annotation

thereon.

REFERENCES

S.

Baase

and

A.

V.

Gelder.

Computer

algorithms:

Introduction

to

design

and

analysis.

Addison-Wesley,

R.

R.

Brooks

and

S.

S.

Iyengar.

Multi-Sensor

Fusion:

Fundamentals

and

Applications

with

Software.

Prentice

Hall,

T.

Clouqueur,

P.

Ramanathan,

K.

K.

Saluja,

and

K.-C.

Wang.

Value-fusion

versus

decision-fusion

for

fault-tolerance

in

collaborative

target

detection

in

sensor

networks.

In

Proceedings

of

Fourth

International

Conference

on

Information

Fusion,

Aug.

M.

Hata.

Empirical

formula

for

propagation

loss

in

land

mobile

radio

services.

IEEE

Transactions

on

Vehicular

Technology,

Aug.

S.

Meguerdichian,

F.

Koushanfar,

G.

Qu,

and

M.

Potkonjak.

Exposure

in

wireless

ad-hoc

sensor

networks.

In

Proceedings

of

MOBICOM,

pages

July

Sensor

Information

Technology

Website,.

P.

Varshney.

Distributed

Detection

and

Data

Fusion.

Springer-Verlag

New-York,

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

sensor number
target decay
collaborative target detection

target detection
sensor network
path exposure
number of sensor
sequential deployment
minimum exposure
random sensor placement
sensor field
deployment
exposure
value fusion