Efficient

detection

in

hyperspectral

imagery

Abstract-Hyperspectral

sensors

collect

hundreds

of

narrow

and

contiguously

spaced

spectral

bands

of

data.

Such

sensors

provide

fully

registered

high

resolution

spatial

and

spectral

images

that

are

invaluable

in

discriminating

between

man-made

objects

and

natural

clutter

backgrounds.

The

price

paid

for

this

high

resolution

data

is

extremely

large

data

sets,

several

hundred

of

Mbytes

for

a

single

scene,

that

make

storage

and

transmission

difficult,

thus

requiring

fast

onboard

processing

techniques

to

reduce

the

data

being

transmitted.

Attempts

to

apply

traditional

maximum

likelihood

detection

techniques

for

in-flight

processing

of

these

massive

amounts

of

hyperspectral

data

suffer

from

two

limitations:

first,

they

neglect

the

spatial

correlation

of

the

clutter

by

treating

it

as

spatially

white

noise;

second,

their

computational

cost

renders

them

prohibitive

without

significant

data

reduction

like

by

grouping

the

spectral

bands

into

clusters,

with

a

consequent

loss

of

spectral

resolution.

This

paper

presents

a

maximum

likelihood

detector

that

successfully

confronts

both

problems:

rather

than

ignoring

the

spatial

and

spectral

correlations,

our

detector

exploits

them

to

its

advantage;

and

it

is

computationally

expedient,

its

complexity

increasing

only

linearly

with

the

number

of

spectral

bands

available.

Our

approach

is

based

on

a

Gauss-Markov

random

field

(GMRF)

modeling

of

the

clutter,

which

has

the

advantage

of

providing

a

direct

parameterization

of

the

inverse

of

the

clutter

covariance,

the

quantity

of

interest

in

the

test

statistic.

We

discuss

in

detail

two

alternative

GMRF

detectors:

one

based

on

a

binary

hypothesis

approach,

and

the

other

on

a

'single'

hypothesis

formulation.

We

analyze

extensively

with

real

hyperspectral

imagery

data

(HYDICE

and

SEBASS)

the

performance

of

the

detectors,

comparing

them

to

a

benchmark

detector,

the

RX-algorithm.

Our

results

show

that

the

GMRF

'single'

hypothesis

detector

outperforms

significantly

in

computational

cost

the

RX-algorithm,

while

delivering

noticeable

detection

performance

improvement.Index

Terms-Gauss-Markov

random

field,

hyperspectral

sensor

imagery,

maximum-likelihood

detection,

'single'

hypothesis

test.

T

HE

use

of

hyperspectral

sensor

imagery

(HSI)

for

automatic

target

detection

and

recognition

(ATD/R)

is

a

relatively

new

and

exciting

area

of

research.

Hyperspectral

sensors

are

passive

sensors

that

simultaneously

record

hundreds

of

narrow

bands

from

the

electromagnetic

spectrum,

and

group

the

bands

in

what

is

called

a

hyperspectral

data

cube.

Our

focus

is

on

using

hyperspectral

sensor

data

for

the

detection

of

anomalous

man-made

objects

in

natural

clutter

backgrounds.

Hyperspectral

sensor

data

shows

great

potential

for

use

in

automatic

Manuscript

received

March

revised

December

The

associate

editor

coordinating

the

review

of

this

manuscript

and

approving

it

for

publication

was

Dr.

Mita

Desai..

S.

M.

Schweizer

was

with

the

Electrical

and

Computer

Engineering

Department,

Carnegie

Mellon

University,

Pittsburgh,

Pennsylvania

USA.

She

is

now

with

Mediasite,

Inc.,

Pittsburgh,

PA

USA..

J.

M.

F.

Moura

is

with

the

Electrical

and

Computer

Engineering

Department,

Carnegie

Mellon

University,

Pittsburgh,

Pennsylvania

USA

(e-mail:

moura@ece.cmu.edu)..

Publisher

Item

Identifier

S

target

detection

and

recognition

because

it

provides

both

spatial

and

spectral

features

about

the

targets

and

backgrounds

in

the

imagery.

It

has

been

shown

that

the

spectral

characteristics

of

natural

clutter

differ

in

significant

ways

from

the

spectral

characteristics

of

man-made

objects

thus,

they

can

be

a

tremendous

aid

in

discriminating

between

the

two

classes..

Hyperspectral

Imagery:

Computational

Challenges:

Hyperspectral

imagery

collected

by

airborne

sensors

pose

the

challenge

of

efficiently

processing

the

massive

amount

of

data

that

results

from

the

combination

of

spatial

and

spectral

information

acquired

by

the

sensors.

The

hyperspectral

data

sets,

with

hundreds

of

spectral

bands

collected

in

a

few

minutes,

run

in

the

hundreds

of

megabytes,

often

in

excess

of

gigabytes.

Such

high

data

rates

necessitate

the

implementation

of

onboard

processing,

since

they

push

the

limits

of

today's

technology.

Much

of

the

current

research

focuses

on

the

development

of

computationally

efficient

detection

algorithms

that

can

be

used

to

determine

regions

of

interest

(ROIs)

in

the

data.

One

idea

for

processing

HSI

data

is

the

"directed

vision

concept,"

where

HSI

data

cues

a

high

resolution

electrooptical

(EO)

sensor,

and

high

spatial

resolution

single-band

image

chips

of

only

the

regions

of

interest

are

transmitted

to

the

ground,

thus

reducing

the

initially

overwhelming

amount

of

data

collected

by

the

hyperspectral

sensor.

The

single-band

chips

that

are

transmitted

down

to

ground

stations

can

be

evaluated

further

by

an

image

analyst

(IA)

for

final

classification

of

the

detected

objects.

In

this

directed

vision

processing

scenario,

there

are

two

important

requirements

with

which

any

successful

detection

algorithm

must

comply.

First,

the

algorithm

should

be

computationally

efficient

in

order

to

meet

the

real-time

nature

of

the

onboard

processing

system.

Second,

the

algorithm

should

perform

effectively

with

respect

to

the

false

alarm

rate,

so

that

the

image

analyst

receiving

the

detection

cues

is

not

inundated

with

false

positive

detections..

Anomaly

Detection:

The

GMRF

Approach:

Ageneralconsideration

for

any

detector

is

the

type

of

a

priori

information

that

is

assumed

about

the

targets

and

clutter.

We

can

consider

three

cases:

known

target

model

parameters

(or

statistics)

and

known

clutter

statistics;

known

target

model

and

unknown

clutter

statistics;

or

both

unknown

target

model

and

unknown

clutter

statistics.

The

third

set

of

assumptions

is

the

most

general,

and

is

more

realistic

when

performing

onboard

processing

of

real

hyperspectral

data,

since

the

impact

of

the

atmosphere

on

spectral

content,

as

well

as

the

variability

of

target

signatures,

makes

it

difficult

to

a

priori

train

on

the

data.

In

this

paper,

we

present

a

new

anomaly

detection

algorithm

for

hyperspectral

data,

i.e.,

a

detector

that

assumes

no

prior

knowledge

about

the

target

and

the

clutter

statistics.

The

detector

models

the

clutter

by

a

Gauss-Markov

random

field

(GMRF),

which

presents

several

advantages.

We

often

refer

to

the

detector

as

the

GMRF

algorithm.

A

GMRF

is

a

spatially

andspectrallycoloredrandomfield,soaccountingforbothspatial

and

spectral

correlation

of

the

clutter.

Secondly,

because

GMRF's

parameterize

directly

the

inverse

of

the

covariance

matrix,

the

GMRF

algorithm

does

not

necessitate

the

inversion

of

a

large

data

covariance

matrix

that

hinders

other

maximum

likelihood

(ML)

detector

approaches.

This

impacts

the

computational

complexity

of

the

GMRF

detector,

which

increases

linearly

with

the

number

of

spectral

bands.

This

efficiency

permits

using

as

many

bands

as

necessary

when

processing

hyperspectral

data;

thus,

the

GMRF

detector

has

room

to

adapt

to

the

increased

capabilities

of

future

hyperspectral

and

ultraspectral

sensors.

This

is

a

significant

advantage

over

other

maximum

likelihood

detection

algorithms

that

are

computationally

severely

limited

to

a

small

number

of

bands..

Goals

of

the

Work:

Our

goal

is

to

design

an

adaptive

anomaly

detection

algorithm

that

is

computationally

efficient

and

exhibits

a

low

false

alarm

rate

with

high

detection

probability.

We

develop

two

adaptive

maximum

likelihood

GMRF

anomaly

detection

algorithms:

a

binary

hypothesis

detector

and

a

'single'

hypothesis

detector.

These

detectors

adapt

to

the

unknown

clutter

statistics

by

using

the

approximate

maximum

likelihood

estimation

technique,

one

of

three

studied

in

We

show

that

the

GMRF

adaptive

'single'

hypothesis

anomaly

detector

outperforms

the

GMRF

binary

hypothesis

detector

and

the

RX-algorithm

The

RX-algorithm

is

the

benchmark

anomaly

detection

algorithm,

originally

developed

for

multispectral

imagery

but

that,

at

the

time

of

this

study,

was

considered

a

prime

candidate

for

local

anomaly

detection

with

hyperspectral

imagery.

Our

results

illustrate

that

the

GMRF

'single'

hypothesis

anomaly

detector

provides

a

significant

computational

advantage

over

the

RX-algorithm,

while

achieving

better

detection

performance.

These

characteristics

led

this

GMRF

anomaly

detector

to

be

chosen

as

one

of

the

processing

algorithm

candidates

for

the

U.S.

Defense

Advanced

Research

Projects

Agency's

(DARPA)

Adaptive

Spectral

Reconnaissance

Program

(ASRP)..

Paper

Survey:

In

the

following

sections,

we

provide

an

overview

of

the

available

detection

algorithms

for

hyperspectral

imagery

and

highlight

the

need

for

a

new

computationally

efficient

algorithm

geared

toward

true

hyperspectral

data.

In

Section

III

we

present,

in

detail,

the

new

modeling

framework

for

hyperspectral

clutter

backgrounds,

and,

in

Section

IV,

use

the

model

to

develop

both

binary

and

'single'

hypothesis

formulations

of

the

maximum

likelihood

detector.

In

Section

V,

using

real

hyperspectral

sensor

imagery,

HYDICE

and

SEBASS,

we

show

the

significant

computational

advantage

and

the

improved

detection

performance

provided

by

the

GMRF

detector

algorithm

over

the

RX-algorithm.

Finally,

Section

VI

concludes

the

paper.

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


Attributed Goal-Oriented Analysis Method for Selecting Alternatives of Software Requirements SUMMARY During software requirements analysis, developers and stakeholders have many alternatives of requirements to be achieved and should make decisions to select an alternative out of them. There are two significant points to be considered for supporting these decision making processes in requirements analysis; 1) dependencies among alternatives and 2) evaluation based on multi-criteria and their trade-off. This paper proposes the technique to address the above two issues by using an extended version of goal-oriented analysis. In goal-oriented analysis, elicited goals and their dependencies are represented with an AND-OR acyclic directed graph. We use this technique to model the dependencies of the alternatives. Furthermore we associate attribute values and their propagation rules with nodes and edges in a goal graph in order to evaluate the alternatives with them. The attributes and their calculation rules greatly depend on the characteristics of a development project. Thus, in our approach, we select and use the attributes and their rules that can be appropriate for the project. TOPSIS method is adopted to show alternatives and their resulting attribute values. During software requirements analysis and design steps, analysts, designers and stakeholders have many alternatives of artifacts and should make decisions to select an alternatives out of them. For example, in requirements analysis, the analysts select the requirements that will be implemented as software, while the designers choose suitable software components to implement the software if they adopt component technology.. As an example, suppose that a requirements analyst elicits requirements from stakeholders using goal-oriented requirements analysis, one of the promising methodology for requirements elicitation [4] , [12] , [15] . In this methodology, customers' needs are modeled as goals to be achieved by software-intensive systems that will be developed, and the goals are decomposed and refined into a set of more concrete sub-goals. After finishing goal-oriented requirements analysis, the analyst obtains an acyclic (cycle-free) directed graph called goal graph. Its nodes express goals to be achieved by the system that will be developed and its edges represent logical dependency relationships between the connected goals. More concretely, a goal can be decomposed into a sub-goals, and the achievement of the sub-goals con- and as a result we get the cost 13 units (A. cost=13) to achieve the alternative in Internet Auction System. Gray colored nodes and edges in the figure are not selected as the alternative of this example.. Step 4-2 Integrating the Resulting Attribute Values After calculating all of the selected attribute values of the evaluated node for each alternative, we apply TOPSIS method to get an order to show our users. This step is shown as follows. This paper presents the application of attributed goal oriented analysis to supports of selecting alternatives from multi-criteria views. We have developed a support tool to construct attributed goal graphs and to evaluate the identified alternatives based on the attached attribute values and their evaluation results. Furthermore, we had two case studies; one is the selection of the requirements that will be implemented in a final product and another is the selection of software component sets for implementation.. The future research agenda can be listed up below. The changes of the selected requirements may propagate to the other requirements, and as a result, the preference of the alternatives may be changed. It is interesting and significant to develop this impact analysis by combining qualitative analysis with our quantitative approach.

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


Hierarchical dwarfs for the rollup cube The data cube operator exemplifies two of the most important aspects of OLAP queries: aggregation and dimension hierarchies. In earlier work we presented Dwarf, a highly compressed and clustered structure for creating, storing and indexing data cubes. Dwarf is a complete architecture that supports queries and updates, while also including a tunable granularity parameter that controls the amount of materialization performed. However, it does not directly support dimension hierarchies. Rollup and drilldown queries on dimension hierarchies that naturally arise in OLAP need to be handled externally and are, thus, very costly. In this paper we present extensions to the Dwarf architecture for incorporating rollup data cubes, i.e. cubes with hierarchical dimensions. We show that the extended Hierarchical Dwarf retains all its advantages both in terms of creation time and space while being able to directly and efficiently support aggregate queries on every level of a dimension's hierarchy. The introduction of the data cube operator has been both a blessing and a curse for those interested in analyzing large amounts of data in the area of On Line Analytical Processing (OLAP). It 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. DOLAP'03, November 7, 2003 provides the means for the succinct formulation of query primitives that are fundamental in OLAP, including histograms (aggregation over computed categories), roll-up and drill-down operations and cross-tabulation. The data cube operator has formalized the concepts of multidimensional aggregate views and the hierarchies within them.. Unfortunately, the expressive power unleashed by the data cube comes at a big cost. The number of views in the data cube increases exponentially with the number of dimensions. As a result a naive computation and storage of all the views was deemed nonfeasible but for toy-like datasets. Following the seminal paper of [9] there has been a flurry of literature for handling the alarming complexity of the data cube by pre-computing a subset of all possible views [10, 11, 22] , providing approximate answers using a lossy representation of the data cube [1, 24] , or by using some form of online aggregation [12] .. All these techniques, albeit their novelty, leave a taste of defeat; instead of attacking the problem, they rather circumvent it. In an earlier work [21] we introduced Dwarf, a novel and complete architecture for computing, storing, indexing, querying and updating both fully and partially materialized data cubes. Dwarf makes feasible the materialization of vast, high-dimensional data cubes by eliminating prefix and suffix redundancies among the dimension values of multiple views. We have demonstrated that prefix redundancies are considerable in dense areas of the cube while suffix redundancies are order of magnitudes more considerable in sparse areas. The effect of both is reflected on every aspect of cube management, from its size to its computation and updates.. The Dwarf construction algorithm employs a unique top-down computation strategy for the data cube, which automatically discovers and eliminates all prefix and suffix redundancies on a given dataset. What is important is that this elimination happens prior to the computation of the redundant values. As a result, not only is the size of the Dwarf dramatically reduced, but its computation is also drastically accelerated. This property is unique to Dwarf and can not be acquainted by techniques that employ a bottom-up computation of the data cube [4, 16] .. The Dwarf architecture of [21] is limited to aggregates computed directly on the raw data. Nevertheless, in most data warehouse applications, dimensional values are further annotated with hierarchies. The presence of hierarchies has a profound effect on the size of the data cube; in-fact it increases its computational and storage complexity exponentially! 1 Dwarf, as was presented in [21] , 1 A D-dimensional data cube has 2 D aggregate views. When each dimension has a hierarchy with L levels, the number of views increases to (L + 1) D i.e. by an exponential factor of ( handles hierarchies externally. Rollup or drilldown hierarchical queries are mapped into queries on the raw data and their results are further aggregated in a second step. This model however can be very costly, especially for queries at the higher levels of a hierarchy. One, thus, would like to be able to answer these queries directly while retaining all other benefits of Dwarf (storage, creation, maintenance). This is the focus of this paper. We here describe two extensions to the Dwarf structure for rollup data cubes; i.e. data cubes computed over all dimension hierarchies. The first extension partitions the views of the rollup data cube into disjoint sets and then indexes each set using a Partial Dwarf. In contrast to the Dwarf structure presented in [21] , a Partial Dwarf only stores a subset of the aggregate views of the selected dimensions. This is done in order to avoid replicating views among different Partial Dwarfs. We present an efficient algorithm for generating these partitions through a simple enumeration process. This property is important because of the exponential number of the views that makes polynomial time algorithms impractical.. One drawback of using multiple Partial Dwarfs is that prefix and suffix redundancies among views that share dimension values but are staged on different Dwarfs are not fully exploited. In [21] we have shown that the elimination of suffix redundancies (through a process we call suffix coalescing) has the most profound effect in the computation time and storage reduction obtained by Dwarf. To retain the full benefits of the Dwarf framework, we further present the Hierarchical Dwarf, a new data structure that incorporates all aggregate views of the rollup data cube in a single store. The Hierarchical Dwarf requires non-trivial extensions on the properties and algorithms of the original Dwarf structure.. Both extensions that we describe here are not limited to full rollup cubes, where all possible aggregations are materialized. Using a granularity parameter G min we can avoid the materialization of sparse areas of the cube with a small number of tuples, less than G min , where the aggregation is postponed and is performed during query time. The resulting coarse-grained Dwarfs typically require much less storage and computation time while query performance often improves, due to improved buffering and clustering [21] .. Due to space limitations in this paper we present the properties of the modified Dwarf structures (Partial and Hierarchical) and only sketch their computation algorithms. We defer presenting the full algorithms and discussing updates in the full version of this paper. Similarly, we do not discuss here the clustering algorithms that we employ for improving access times to the views, in a way analogous to [21] .. To our knowledge, the Dwarf extensions that we present here are the only compact structures that directly attempt to fully or partially materialize the rollup data cube. The benefit of this materialization is significantly improved query performance for hierarchical queries as will be demonstrated by our experiments.. The rest of the paper is organized as follows. In Section 2 we discuss related work. In Section 3 we introduce Partial Dwarfs, while Section 4 describes the properties of the Hierarchical Dwarf structure and Section 5 its creation algorithm. Section 6 contains our experiments and Section 7 concluding remarks. We have presented two extensions to the Dwarf architecture for the problem of managing data cubes that aggregate data over all dimension hierarchies. The modified Dwarfs retain the main desired characteristics of the Dwarf framework, namely the automatic elimination of suffix and prefix redundancies. The Hierarchical Dwarf is a fusion of the original Dwarf structure and the hierarchy schemata and in the experiments we have demonstrated that it achieves substantially better query performance because it directly stores all possible aggregates (in a very compact representation). Thus, no post-processing of the results is required.. In addition, as is the case for the original Dwarf, we have demonstrated that the proposed extensions are not limited to fully materialized cubes and that the amount of materialization can be controlled through a single degree of freedom called granularity, offering a very efficient alternative to the problem of view selection. An important observation we made is that the reduction in size and creation time of the Hierarchical Dwarf due to prefix and suffix elimination (coalescing), is epitomized in rollup cubes because of the correlation among aggregates of multiple hierarchies. For instance, while the Basic Dwarf (without hierarchies) achieves a compression ratio of up to 1:49 in the real dataset we used, the savings are up to 1:149 for the Hierarchical Dwarf. Roussopoulos in [18] first explored the problem of selecting a set of materialized views (with no aggregations) for answering queries under the presence of updates and a global space constraint. View selection algorithms in the context of the data cube can be found in [10, 11, 22] . The authors of [15] show that the view selection problem optimizing the query response time is NP-complete. We notice here that most of the aforementioned greedy algorithms have complexity that is polynomial in the number of views, which is infact exponential in the number of dimensions, making them impractical on multidimensional datasets in the presence of hierarchies.. The time to compute the data cube is another overwhelming factor. The techniques that have been proposed take advantage of commonalities between different views by sharing partitions, sorts or partial sorts and intermediate results [2, 6, 20] . In [26] an array-based algorithm is proposed that uses memory-arrays to store partitions and to avoid sorting. Unfortunately, similar to most array-based Multidimensional-OLAP (MOLAP) techniques, performance quickly degrades as the number of dimensions and the sparsity of the data increases. The algorithms in [4, 17] are designed to handle sparse data cubes. The Bottom-Up Cube (BUC) algorithm described in [4] stores only those partitions of a view whose values are produced by aggregating at least MinSup tuples of the fact table. The parameter MinSup is called the minimum support and is analogous to the G min parameter of [21] .. Several indexing techniques have been devised for storing data cubes. Cube Forests [14] exploit prefix redundancy when storing the cube. However, they do not eliminate suffix redundancy that is the most dominant factor in data cube compression [21] . In the Statistics Tree [8] prefix redundancy is partially exploited however, the tree contains all possible paths (even paths corresponding to tuples that have not been inserted) making it inappropriate for sparse datasets. In [25] the notion of a base single tuple is similar to the one of a coalesced tuple in Dwarf. Compared to this work, our method provides a much more efficient method not only for the automatic discovery of the coalesced tuples, but also for indexing the produced cube, something also not done by most of the methods for cube computation listed above. Cubetrees [19] , QC-trees [16] and DC-trees [7] are also designed for data cube aggregates. From this list, only the last supports hierarchies. However, it only store uncompressed data cubes; i.e. no prefix or suffix elimination is performed. Thus, their use is only limited to small data cubes and cannot compete with the Dwarf representation simply because of their enormous storage requirements. In this section we provide an evaluation of both the Partial Dwarfs and the Hierarchical Dwarf for managing rollup data cubes. We used a real dataset provided by an OLAP company, whose name we cannot disclose due to our agreement. The eight-dimensional dataset has hierarchies on four dimensions and its characteristics are summarized in Table 4 . All the experiments were performed on a Pentium 4 PC clocked at 1.8GHz and with 1GB of memory.. We evaluate the computation time and storage space required, as well as the query performance of the modified Dwarf structures. As a reference we use the "Base Dwarf" where only the lower levels (i.e. the most detailed) levels of the hierarchies are used. Every query that addresses less detailed levels is "broken" to many point/range queries using the metadata manager. The resulting tuples are then appropriately aggregated to provide the answer to the original query.

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


Critical Path Scheduling Parallel Programs on an Unbounded Number of Processors In this paper we present an efficient algorithm for compile-time scheduling and clustering of parallel programs onto parallel processing systems with distributed memory, which is called The Dynamic Critical Path Scheduling DCPS. The DCPS is superior to several other algorithms from the literature in terms of computational complexity, processors consumption and solution quality. DCPS has a time complexity of O(e + v log v), as opposed to DSC algorithm O((e+v) log v) which is the best known algorithm. Experimental results demonstrate the superiority of DCPS over the DSC algorithm. The efficient execution of tasks, that constitute a parallel program on multiprocessors systems with distributed memory, highly depends on the scheduling algorithm used to distribute the tasks into processors. If the scheduling results in a high degree of parallelism, a greater amount of communication will be required among the tasks. On the other hand, if communication is restricted, potential parallelism will be lost. The objective of scheduling heuristics is to partition the program into appropriate size and number of tasks to balance communication overhead and parallelism so that the schedule length is minimized. The partitioning/scheduling problem has been shown to be NP-complete for a general task graph [2, 4, 15] , and heuristics are required to find sub-optimal solutions. In this paper we consider the scheduling problem for general parallel programs which can be represented by a Directed Acyclic Graph (DAG). The problem of clustering general task graphs with high communication delays (g(G) < 1 see below) has no good solution today. So, we focus our attention on this challenging case. We propose a new approach for scheduling DAGs which achieve better schedule lengths with minimum time complexity and processors consumption. A salient feature of our algorithm is that it computes the Makespan (schedule length or parallel time) of the partially scheduled graph incrementally at each refinement step of the scheduling process.. The remainder of the paper is organized as follows: Section 2 presents the basic definitions and assumptions adopted in this paper. We recall in Section 3 principles of the best existing scheduling algorithms. Section 4 describes DCPS algorithm. Some theoretical results are presented in Section 5 and Section 6 shows that our heuristic can achieve optimal solutions for Join and Fork DAGs. Before concluding, we report in Section 7 some experimental results that assess the good behavior of our algorithm. In this paper, we have presented a new algorithm based on a critical path approach for scheduling parallel programs onto multiprocessors, we have demonstrated that the solution quality, the number of processors used and the time complexity of the proposed algorithm makes it a viable choice for compile-time scheduling of general task graphs. A large number of algorithms for scheduling and partitioning DAGs have been proposed in the literature. There exist mainly two classes:. List scheduling heuristics [8, 13, 14, 16] : These algorithms assign priorities to the tasks and schedule them according to a list priority scheme. In each step, a list scheduler selects one of the tasks in the list, assigns it to a suitable processor, and update the list.. Another technique is called Critical Path (CP) heuristics [5, 7, 11, 10, 12, 15, 18, 17] : The CP of a task graph (DAG) is defined to be the path having the largest sum of the weights of both nodes and edges from a source node to a sink node. These algorithms try to shorten the longest path in the DAG by removing communication requirements and mapping the adjacent tasks into a cluster (this is called zeroing an edge). This approach has received the most attention and a taxonomy of these techniques can be found in [5] .. Efe's [3] article is one of the earliest works to consider task graph clustering in distributed computing. Kim and Browne [9] studied linear clustering which is an important special case for clustering. In [10] , the Dynamic Critical Path (DCP) algorithm is proposed. This algorithm uses a look-ahead strategy for the start times of a node's children when selecting a processor. The DCP algorithm have the following features: -It assigns dynamic priorities to the nodes at each step in the scheduling process, -The start times of the nodes are not fixed until all nodes have been scheduled, -It selects a processor for a node by looking ahead the potential start time of the node's critical child node on that processor. In this paper, a DCP node is identified by checking for equality of its AEST (Absolute Earliest Start Time) and ALST (Absolute Earliest Start Time) attributes. The computation of these values requires the traversal of the entire DAG at each step. Repeating this computation for all steps will result in at least O(v 2 ) complexity. Unlike DCP algorithm, the computation of CP node is done incrementally from step to step in our algorithm (DCPS), in order to reduce the time complexity. The time complexity of the DCP algorithm is shown to be O(v 3 ). For scheduling arbitrary task graphs without duplication, the fastest known algorithm to date was proposed by Gerazoulis and Yong [7] who considered the Dominant Sequence (DS) instead of CP to represent the longest path of the partially clustered graph. Their algorithm called DSC (Dominant Sequence clustering), has a low complexity of O((e+v) log v). Our approach in this paper is based on the principle of Critical Path scheduling.

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


Alan Turing and the development of Artificial Intelligence During the centennial year of his birth Alan Turing has been widely celebrated as having laid the foundations for Computer Science, Automated Decryption, Systems Biology and the Turing Test. In this paper we investigate Turing's motivations and expectations for the development of Machine Intelligence, as expressed in his 1950 article in Mind. We show that many of the trends and developments within AI over the last 50 years were foreseen in this foundational paper. In particular, Turing not only describes the use of Computational Logic but also the necessity for the development of Machine Learning in order to achieve human-level AI within a 50 year time-frame. His description of the Child Machine (a machine which learns like an infant) dominates the closing section of the paper, in which he provides suggestions for how AI might be achieved. Turing discusses three alternative suggestions which can be characterised as: 1) AI by programming, 2) AI by ab initio machine learning and 3) AI using logic, probabilities, learning and background knowledge. He argues that there are inevitable limitations in the first two approaches and recommends the third as the most promising. We compare Turing's three alternatives to developments within AI, and conclude with a discussion of some of the unresolved challenges he posed within the paper. In this section we will first review relevant parts of the early work of Alan Turing which pre-dated his paper in Mind [42] . Turing closes the Mind paper with the following statement.. We can only see a short distance ahead, but we can see plenty there that needs to be done.. As the present article indicates, Turing's vision was far from myopic. Indeed he foresaw many of the key issues which dominated Artificial Intelligence research over the last fifty years. However, it could still be argued that there has been no convincing demonstration of a computer passing the Turing test to date. Modern computers are typically not well-equipped with deep natural language facilities capable of playing the kind of parlour game which Turing describes. On the other hand, when most people these days are faced with an arcane (or even simple) question which they cannot immediately solve they turn to the closest computer or smart phone to find an answer. The implicit assumption is that the collective power of the World Web Web provides a greater degree of intelligence than that provided by asking the same question of whichever person is closest to hand. Computers instantly search through voluminous encylopedias, find objects in images, learn patterns of user behaviour and provide reasonable translations of text in foriegn languages. Many of the techniques used in these tasks grew out of the research carried out by Artificial Intelligence laboratories. We have Turing to thank not only for the concept of the Universal Turing machine, which gave rise to the computer industry, but also his visions of intelligent machines, which inspired the development of much of the software behind the digital assistants which we find around us everywhere in the modern world.

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


High-Throughput Soft-Output MIMO Detector Based on Path-Preserving Trellis-Search Algorithm Abstract-In this paper, we propose a novel path-preserving trellis-search (PPTS) algorithm and its high-speed VLSI architecture for soft-output multiple-input-multiple-output (MIMO) detection. We represent the search space of the MIMO signal with an unconstrained trellis, where each node in stage of the trellis maps to a possible complex-valued symbol transmitted by antenna . Based on the trellis model, we convert the soft-output MIMO detection problem into a multiple shortest paths problem subject to the constraint that every trellis node must be covered in this set of paths. The PPTS detector is guaranteed to have soft information for every possible symbol transmitted on every antenna so that the log-likelihood ratio (LLR) for each transmitted data bit can be more accurately formed. Simulation results show that the PPTS algorithm can achieve near-optimal error performance with a low search complexity. The PPTS algorithm is a hardware-friendly data-parallel algorithm because the search operations are evenly distributed among multiple trellis nodes for parallel processing. As a case study, we have designed and synthesized a fully-parallel systolic-array detector and two folded detectors for a 4 4 16-QAM system using a 1.08 V TSMC 65-nm CMOS technology. With a 1.18 mm 2 core area, the folded detector can achieve a throughput of 2.1 Gbps. With a 3.19 mm 2 core area, the fully-parallel systolic-array detector can achieve a throughput of 6.4 Gbps.Index Terms-Application-specific integrated circuit (ASIC), multiple-input-multiple-output (MIMO) detection, shortest path algorithm, soft-output MIMO detector, VLSI architecture. We propose a novel soft-output MIMO detector architecture based on the PPTS algorithm. The PPTS algorithm is a searchefficient algorithm based on a path-preserving trellis search approach. We introduce a path reduction and a path extension algorithm to reduce the search complexity while still maintaining sufficient soft information values to form the LLRs. We avoid the missing counter-hypothesis problem by keeping multiple paths during the trellis search process. Simulation results show that the PPTS algorithm can achieve very good error performance with a small value. The PPTS algorithm is a data-parallel algorithm and is very suitable for high speed VLSI implementation. Based on the PPTS algorithm, we have synthesized a systolic detector and two folded detectors for a 4 4 16-QAM system. Compared with tree-search based detectors, the proposed detectors have a significant improvement in terms of detection throughput and area efficiency. The proposed MIMO detector has great potential for application in the next generation Gbps wireless systems by achieving very high throughput and good error performance. Traditionally, the MIMO detection problem is usually tackled based on tree-search algorithms. The tree-search algorithms can be often categorized into the depth-first search algorithm and the breadth-first search algorithm. The sphere detection algorithm [3] - [7] is a depth-first tree-search algorithm to find the closest lattice point. To provide soft information for outer channel decoders, a modified version of the sphere detection algorithm, or soft sphere detection algorithm, is introduced in [8] . There are many implementations of sphere detectors, such as [9] - [18] . However, the sphere detector suffers from non-deterministic complexity and variable-time throughput. The sequential nature of the depth-first tree-search process significantly limits the throughput of the sphere detector especially when the SNR is low. The -Best algorithm is a fixed-complexity algorithm based on the breadth-first tree-search algorithm [19] - [24] . But this algorithm tends to have a high sorting complexity to find and retain the best candidates, which limits the throughput of the detector especially when is large. There are some other variations of the -Best algorithm, which require less sorting than the regular -best algorithm, e.g., [25] - [29] , but it is still very difficult for the -Best detectors to achieve 1+ Gbps throughput because of the high sorting complexity.. Generally, to make a soft decision for a bit , a maximumlikelihood (ML) hypothesis and a counter-hypothesis of this bit are both required to form the LLR. A major problem for almost all the "conventional" tree-search algorithms is that the counterhypotheses for certain bits are missing due to tree pruning. As a consequence of missing counter-hypotheses, the magnitude of the LLRs for certain bits cannot be determined, which will lead to performance degradation.

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


A Graph Model for Imperative Computation Abstract. Scott's graph model is a lambda-algebra based on the observation that continuous endofunctions on the lattice of sets of natural numbers can be represented via their graphs. A graph is a relation mapping finite sets of input values to output values.We consider a similar model based on relations whose input values are finite sequences rather than sets. This alteration means that we are taking into account the order in which observations are made. This new notion of graph gives rise to a model of affine lambda-calculus that admits an interpretation of imperative constructs including variable assignment, dereferencing and allocation.Extending this untyped model, we construct a category that provides a model of typed higher-order imperative computation with an affine type system. An appropriate language of this kind is Reynolds's Syntactic Control of Interference. Our model turns out to be fully abstract for this language. At a concrete level, it is the same as Reddy's object spaces model, which was the first "state-free" model of a higher-order imperative programming language and an important precursor of games models. The graph model can therefore be seen as a universal domain for Reddy's model. This paper is an investigation into the semantics of imperative programs, using a style of model first proposed by Reddy [19] . Reddy's model was a significant development, because it was the first to model imperative programs without the use of an explicit semantic entity representing the store. Instead, programs are interpreted as "objects" (in Reddy's terminology) which exhibit history-sensitive behaviour. The store is not modelled explicitly; instead one models the behaviour that results from the use of the store.. This new approach turned out to be the key to finding models that are fully abstract: that is, models whose equational theory coincides with the operationally defined notion of program equivalence. The first such models for higher-order imperative programming languages to be discovered were based on game semantics [2, 1] . Although these models used several ideas from Reddy's work, it was not known whether Reddy's model was itself fully abstract for the language SCI which it interprets.. In this paper, some of which is a much extended exposition of work first presented in [13] , we show that Reddy's model is indeed fully abstract. But more than this, we argue that it arises from a straightforward modification of Scott's well-known Pω graph-model of the λ-calculus [22] . Just as in Scott's work, we develop a model in which every type-object appears as a retract of a universal object, and it turns out that these retractions are all definable in a slightly extended SCI language. Thus the language has a universal type, which leads to a very cheap proof of full abstraction. With some additional effort, we show that the extensions required to establish this universal type are in fact conservative, that is, they do not alter the notion of program equivalence. Therefore the original model is itself fully abstract.. We should remark that the work required to establish conservativity of one of these extensions amounts to a partial definability result which would be enough to prove full abstraction of the original model directly; indeed, that is what was done in [13] . Nevertheless, we believe that the presentation in terms of conservativity is useful, not least because of the ease of establishing full abstraction for the extended language.. 1.1. Related work. The utility of a universal type for establishing properties of a model is well-known, and was explained in detail by Longley [11] . The central idea of this paper, of modifying Scott's graph model to record slightly different information, has also been used by Longley in [12] to obtain a model of fresh name generation. A similar model construction has been investigated by Hyland et al. [7] . We shall remark further on the connections between these papers and our present work below, although we leave closer investigation for future work.. The denotational semantics of SCI was first treated by O'Hearn [17] using functor categories. Reddy's model [19] was the first to avoid the explicit use of a store-component in the mathematical model, but as mentioned above this model was not known to be fully abstract until a preliminary version of the work being reported here appeared [13] . Joint work of the present author and Wall [23] developed a game semantics for SCI and established a full abstraction result. Laird [9] analysed the fully abstract relational model to show that equivalence of programs in a finitary fragment of SCI is decidable, but observational approximation is not, and went on to construct a fully abstract games model of a version of SCI with control operators, establishing decidability of both equivalence and approximation. The SCI type system itself has been refined and extended in two ways: first by Reynolds, using intersection types [21] , and then by O'Hearn et al. [15] , using a novel system with two-zone type judgements. We have shown that a simple amendment of Scott's Pω graph-model gives rise to a model of imperative computation, in the event-based style of Reddy's object-spaces model and later models based on game semantics. Moreover we have shown that this model contains a universal type, thus yielding a very cheap proof of full abstraction for the language SCI mk,ran . With some additional work we have established full abstraction for the original SCI language via conservativity results; this was not known prior to our work.. We believe that the general approach of constructing models in this way is of interest and has the potential to give rise to a range of interesting concrete models and some useful insights at a more abstract level. We intend to develop an axiomatic presentation of our constructions, expanding on the work of Hyland et al. [7] . At present it is not clear whether the more refined game-based models can be presented in this style; this remains a topic for further investigation.

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


Sticky-free and overhang-free DNA languages Abstract. An essential step of any DNA computation is encoding the input data on single or double DNA strands. Due to the biochemical properties of DNA, complementary single strands can bind to one another forming double-stranded DNA. Consequently, data-encoding DNA strands can sometimes interact in undesirable ways when used in computations. It is crucial thus to analyze properties that guard against such phenomena and study sets of sequences that ensure that no unwanted bindings occur during any computation. This paper formalizes and investigates properties of DNA languages that guarantee their robusteness during computations. After defining and investigating several types of DNA languages possessing good encoding properties, such as sticky-free and overhang-free languages, we give algorithms for deciding whether regular DNA languages are invariant under bio-operations. We also give a method for constructing DNA languages that, in addition to being invariant and sticky-free, possess errordetecting properties. Finally, we present the results of running tests that check whether several known gene languages (the set of genes of a given organism) as well as the input DNA languages used in Adleman's DNA computing experiment, have the defined properties. Deoxyribonucleic acid (DNA, Fig.1 ) is the molecule found in all cellular organisms that holds their genetic information. It is composed primarily of nucleotides (Figure 1 (b) ) with a sugar-phosphate backbone (Figure 1 (a) ). The nucleotides attach to the backbone to form a structure that resembles a clothesline if one were to use the backbone as the line and the nucleotides as the clothes. This is known as single-stranded DNA. A single strand of DNA has an orientation and its two ends are physically different. By convention, one end of the backbone is called the 5 end and the other one is called the 3 end.. Single-stranded DNA molecules can bind to each other to form doublestranded DNA molecules. This happens due to the fact that the nucleotides are pairwise Watson-Crick complementary: A is complementary to T and C to G. When two complementary single DNA strands with opposite orientation meet under favourable conditions, they bind to each other to form a double-stranded DNA molecule in a process called base-pairing, hybridization or annealing. The reverse process, of a double-stranded DNA molecule breaking apart into its single-stranded components is called melting or denaturation. The two single-strands of DNA bind in an anti-parallel fashion, that is, when lined up, one strand is oriented 5 → 3 and the other is oriented 3 → 5 . Non-overlapping sequences of three nucleotides (e) define codons, which eventually define the amino acid sequences of proteins DNA computing is based on the fact that information (numbers, letters, special characters) can be encoded over the four-letter alphabet ∆ = {A, C, G, T } and therefore represented physically by DNA strands. Moreover, molecular biology techniques can be used to manipulate those strands and thus perform arithmetic and logic operations. The techniques that have so far been used for computations, called in the sequel bio-operations [17] , include synthesis of desired strands, hybridization, denaturation, separation of strands by length, extraction from a heterogeneous solution of those strands that contain a given pattern as a subsequence, cut and paste DNA strands at desired locations, insert and delete DNA strands into other strands, make copies of DNA strands, detect and read out the sequence of letters composing a DNA strand, etc.. After the initial human intervention, consisting for example of mixing the appropriate components of a solution, most bio-operations consist either of DNA strands self-assembling, or of active molecules (like enzymes) acting upon DNA strands. A fundamental difference between an electronic computer and a DNA based-computer is that in the former data interaction is fully controlled by the programmer: one bit from a memory location will not affect another bit at another location, unless explicitely instructed to do so. In contrast, in a test-tube DNA-computer, data-encoding DNA strands can affect each other in undesired ways. Take for example the bio-operation hybridization based on Watson-Crick complementarity. Adleman's DNA algorithm, [1] , for finding a Directed Hamiltonian Path in a given graph consisted of encoding the nodes and edges on single DNA strands in such a way that legal paths through the graph were formed by self-assembly: 5 → 3 nodes were brought together by 3 → 5 edges encoded especially to bind both the incoming and outgoing nodes. As seen in Adleman's experiment, hybridization is fundamental to DNA computing. However, if the input data is not carefully encoded, some data-encoding DNA single strands can bind to others rendering them useless for subsequent computation. This points out to yet another difference between DNA computing and electronic computing. In electronic computing an operand is not "consumed" by an operation, i.e. performing the addition 1 + 2 = 3 will not decrease the number of "1"s available for other additions. However, in DNA computing, a bio-operation usually consumes both operands. This means that if one of the operands is involved in an illegal binding, it may be unavailable for the desired computation and thus affect the correctness of the result.. In most proposed DNA-based algorithms, the initial DNA solution encoding the input to the problem will contain some DNA strands which represent single codewords, and some which represent strings of catenated codewords. Several attempts have been made to address the issue of "good encodings" by trying to find sets of codewords which are unlikely to form undesired bonds with each other by hybridization [5] , [9] , [10] . For example genetic and evolutionary algorithms have been developed which select for sets of DNA sequences that are less likely to form undesirable bonds [4] , [6] . [7] has developed a program to create DNA sequences to meet logical and physical parameters such as uniqueness, melting temperatures and G/C ratio as required by the user. [8] has addressed the issue of finding an optimal word design for DNA computing on surfaces. [12] has designed a software for constraint-based nucleotide selection. [11] has investigated encodings for DNA computing in virtual test tubes. [22] used combinatorial methods to calculate bounds on the size of a set of uniform code words (as a function of codeword length) which are less likely to mis-hybridize.. This paper continues the approach in [18] , [14] by formalizing and investigating properties of languages that guarantee that no unwanted partial bindings will occur between the words of the language. The paper is organized as follows. Section 2 contains basic definitions, notation and examples of the notions used or defined in this paper, such as sticky-free DNA languages or overhang-free DNA languages. Section 3 investigates properties of such languages, for example, what are necessary and sufficient conditions for the catenation of two languages to have one of the desired properties. Section 4 gives algorithms for deciding whether a given regular language is invariant under bio-operations. By applying these results to the computation language of a DNA-based system (the set of all possible words that can be obtained during any bio-computation) we can decide whether "good" encoding properties of the initial input language are preserved during a biocomputation. Section 5 gives a method for constructing languages that, in addition to being invariant, nonoverlapping and sticky-free, possess errordetecting capabilities. Finally, Section 6 presents the results of running tests checking whether several known gene languages (the set of genes of a given organism), as well as the input DNA language used in Adleman's first DNA computing experiment, have the properties we have defined.

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


Definitional interpreters for higher-order programming languages Higher-order programming languages (i.e., languages in which procedures or labels can occur as values) are usually defined by interpreters which are themselves written in a programming language based on the lambda calculus (i.e., an applicative language such as pure LISP). Examples include McCarthy's definition of LISP, Landin's SECD machine, the Vienna definition of PL/I, Reynolds' definitions of GEDANKEN, and recent unpublished work by L. Morris and C. Wadsworth. Such definitions can be classified according to whether the interpreter contains higher-order functions, and whether the order of application (i.e., call-by-value versus call-by-name) in the defined language depends upon the order of application in the defining language. As an example, we consider the definition of a simple applicative programming language by means of an interpreter written in a similar language. Definitions in each of the above classifications are derived from one another by informal but constructive methods. The treatment of imperative features such as jumps and assignment is also discussed. An important and frequently used method of defining a programming language is to give an interpreter for the language which is written in a second, hopefully better understood language.. (We will call these two languages the defined and defining languages, respectively.). In this paper, we will describe and classify several varieties of such interpreters, and show how they may be derived from one another by informal but constructive methods. Although our approach to "constructive classification" is original, the paper is basically an attempt to review and systematize previous work in the field, and we have tried to make the presentation accessible to readers who are unfamiliar with this previous work.. (Of course, interpretation can provide an implementation as well as a definition, but there are large practical differences between these usages. Definitional interpreters often achieve clarity by sacrificing all semblence of efficiency. ) We begin by noting some salient charact%ristics of programming languages themselves.. The features of these languages can be divided usefully into two categories:. applicative features, such as expression evaluation and the definition and application of functions, and imperative features, such as statement sequencing, labels, jumps, assignment, and procedural side-effects. Most user-oriented languages provide features in both categories. Although machine languages are usually completely imperative, there are few "higher-level" languages in this category.. (IPL/V might be an example.). On the other hand, there is at least one well-known example of a purely applicative language:. LISP. (i.e., the language defined in McCarthy's original paper. ~I Most LISP implementations provide an extended language including imperative features.) There are also several more recent, rather theoretical languages (ISWIM (2) , PAL (3) and GEDANKEN (4)) which have been designed by starting with an applicative language and adding imperative extensions.. Purely applicative languages are often said to be based on a logical system called the lambda calculus (5, 6) , or even to be "syntactically sugared" versions of the lambda calculus.. In particular, Landin (7) has shown that such languages can be reduced to the lambda calculus by treating each type of expression as an abbreviation for some expression of the lambda calculus.. Indeed, this kind of reducibility could be taken as a precise definition of the notion of "purely applicative.". However, as we will see, although an unsugared applicative language is syntactically equivalent to the lambda calculus, there is a subtle semantic difference. Essentially, the semantics of the "real" lambda calculus implies a different "order of application" than most applicative programming languages.. A second useful characterization is the notion of a higher-order programming language.. In analogy with mathematical logic, we will say that a programming language is higher-order if procedures or labels can occur as data, i.e., if these entities can be used as arguments to procedures, results of functions, or values of assignable variables. A language which is not higher-order will be called first-order.. In ALGOL and its various descendents, procedures and labels can be used as procedure arguments, and in more recent languages such as PL/I and ALGOL 68, they may also be used as function results and assignable values, subject to certain "scope" restrictions (which are imposed to preserve a stack discipline for the storage allocation of the representations of functions and labels).. However, the unrestricted use of procedures and labels as data is permitted in only a handful of languages which sacrifice efficiency for generality:. LISP (in most of its interpretive implementations), ISWIM, PAL, GEDANKEN, and (roughly) POP-2.. With regard to current techniques of language definition, there is a substantial disparity between firstorder and higher-order languages. As a result of work by Floyd(8) , Manna(9) , Hoare(10) , and others, most aspects of first-order languages can be defined logically, i.e., one can give an effective method for transforming a program in the defined language into a logical statement of the relation between its inputs and outputs.. However, it has not yet been possible to apply this approach to higher-order languages.. (Although recent work by Scott(11) and Milner (24) represents a major step in this direction.). Almost invariably, higher-order languages have been defined by the approach discussed in this paper, i.e., by giving interpreters which are themselves written in a programming language. (An apparent exception is tb~ definition of ALGOL given by Burstall (±z) , but this can be characterized as a logical definition of a first-order interpreter which interprets a higher-order language.). Moreover, even when the defined language contains imperative features, the defining language is usually purely applicative.. (Probably because applicative languages are well suited for computations with symbolic expressions.). Examoles include McCarthy's definition of LISP(1), Landin's SECD machine (7) , the Vienna definition of PL/I(13), Reynolds' definitions of GEDANKEN (14) , and recent unpublished work by L. Morris (15) and C. Wadsworth.. (There are a few instances of definitional interpreters which fall outside the conceptual framework developed in this paper.. A broader review of the field is given by deBakker. (28)) These examples exhibit considerable variety, ranging from very concise and abstract interpreters to much more elaborate and machine-like ones. To achieve a more precise classification, we will introduce two criteria.. First, we ask whether the defining language is higher-order, or more precisely, whether any of the functions which comprise the interpreter either accept or produce values which are themselves functions.. The second criteria involves the notion of order of application.. In designing any language which allows the use of procedures or functions, one must choose between two orders of application which are called (following ALGOL terminology) call-by-value and call-by-name.. Even when the language is purely applicative, this choice will affect the meaning of some, but not all, programs which can be written in the language.. Remembering that an interpreter is a specific program, we obtain our second criteria: Does the meaning of the interpreter depend upon the order of application chosen for the defining language? These two criteria establish four possible classes of interpreters, each of which contains one or more of the examples cited earlier: The main goal of this paper is to illustrate and relate these classes of definitional interpreters.. In the next section we will introduce a simple applicative language, which we will use as the defining language and also, with several restrictions, as the defined language.. Then we will present a simple interpreter which uses higher-order functions and is order-of-application dependent, and we will transform this interpreter into examples of the three remaining classes.. Finally, we will consider the problem of adding imperative features to the defined language (while keeping the defining language purely applicative).

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


Novel pharmacophore-based methods reveal gossypol as a reverse transcriptase inhibitor In a program to identify new structural entities for the inhibition of the HIV-1 reverse transcriptase (RT) enzyme via database searching, a series of RT pharmacophores were developed. By utilising a novel filtering technique, the National Cancer Institute database of compounds was scanned producing 15 compounds to be screened for activity. A notable inclusion was a series of gossypol derivatives. The testing of a series of compounds revealed the parent compound gossypol to be an HIV-1 reverse transcriptase inhibitor. These results suggest that at least part of its anti-HIV activity is due to gossypol targeting the non-nucleoside inhibitor binding pocket of RT. In a program to identify new structural entities for the inhibition of the HIV-1 reverse transcriptase (RT) enzyme via database searching, a series of RT pharmacophores were developed. By utilising a novel filtering technique, the National Cancer Institute database of compounds was scanned producing 15 compounds to be screened for activity. A notable inclusion was a series of gossypol derivatives. The testing of a series of compounds revealed the parent compound gossypol to be an HIV-1 reverse 2 transcriptase inhibitor. These results suggest that at least part of its anti-HIV activity is due to gossypol targeting the non-nucleoside inhibitor binding pocket of RT. The use of ligand-based computer-aided molecular modelling techniques to investigate the nonnucleoside inhibitor binding pocket (NNIBP) of the reverse transcriptase (RT) enzyme has been documented. The breadth of coverage encompasses QSAR methodologies, 1,2,3 molecular field-based similarity studies, 4, 5 neural networks 6 and pharmacophore generation. 6 Each study maintains its identity whether it be by limiting its training set to a single class of inhibitors, 6 or by comparing two different ligand-based approaches 3 to name just two.. The RT enzyme presents an interesting target for computer-aided modelling studies as the NNIBP is known to be flexible, moving both to accommodate inhibitors, and to take on different shapes depending on the inhibitor bound. 7 This must be considered in any pharmacophore-based approach as a rigid pocket geometry is usually assumed for this computational aspect. Thus, pharmacophore models generated for the NNIBP are usually limited to a single class of compound. While these models could be used for database searching and subsequent docking experiments to reveal new structural entities as possible inhibitors, they do limit the potential versatility of the technique by simply ignoring one of the vital and significant features of the site, i.e. the pocket flexibility. We have developed our pharmacophore models to incorporate the possibility of pocket flexibility by the implementation of a novel filtering system during database searching. Therefore, the aim was not to produce the traditional 'common' pharmacophores derived from a range of different structural classes of inhibitors, but rather to produce a range of pharmacophores corresponding to each inhibitor class.. Essentially, we are not using 'pharmacophores' in the traditional sense, i.e. trying to produce a quantitative pharmacophore that precisely defines a space occupied by a congeneric set of ligands. We feel that this has been done already for HIV-RT. The purpose of our study was to generate pharmacophores, not to be used for predictions, but rather to try and search a different molecular space 3 in database searching, and therefore give rise to a different set of hits for testing. Our approach here was to not eliminate possibilities (e.g. by using a "shape" option within the pharmacophore software), but rather, to use separately generated pharmacophores, defined for each inhibitor class, as filters.. Therefore, the end result would be a series of molecules (hits) which should fit all potential pocket shapes, as currently reported. This procedure would take into account not only ligand flexibility/adaptability, but enzyme flexibility because it does not try and define one (quantitative) pharmacophore for a series of different pocket shapes -rather, it would try to find molecules that will fit all pocket shapes. Furthermore, this methodology would unearth compounds that can be 'induced' to fit several pharmacophore models through conformational changes, or by different fittings within the model. This is an additional advantage of this method, as examples have already been reported whereby different derivatives of the same lead compound bind in a different orientation within the NNIBP. Therefore, by allowing these alternative positions, we are starting to take into account a degree of enzyme flexibility as it is currently defined in the literature. Furthermore, the pharmacophore software incorporates the different mappings (binding modes) for each molecule and will therefore also take into account possible enzyme flexibility.. This technique was adopted in an attempt to find new structural entities as potential NNIBP inhibitors by searching different spaces within compound databases. A series of pharmacophores were developed for the NNIBP of the RT enzyme of HIV-1. These pharmacophore hypotheses were designed for database searching in such a fashion as to incorporate some consideration of the known flexibility of this pocket. A search of the NCI database resulted in a number of hits, a selection of which were tested for their RT inhibition activity. Emerging from these results was gossypol, already reported as an anti-HIV agent, however earlier reported as unlikely to be acting on the RT enzyme. Our testing revealed gossypol to be an RT inhibitor of significance, and that there is a strong suggestion that the site of action is the non-nucleoside inhibitor binding pocket. The automated pharmacophore development program Catalyst 8, 9 was used to generate separate pharmacophore models, using default parameters, for a series of four distinct NNI classes: nevirapine, hydroxyethoxymethylphenylthiothymine (HEPT), tetrahydroimidazobenzodiazepinone (TIBO), and Kanilinophenylacetamide (APA) as well as an additional 'combined model'. These pharmacophores were used as a filter by sequentially running them through the NCI database. This approach did not aim to refine all the data into generating one hypothesis, but to keep the hypotheses separated into compound classes. These multiple hypotheses were then used to search what is probably a more diverse structural space within the database. This could possibly, at least indirectly, take into account that the NNIBP is flexible and changes shape with different structural entities. The compounds provided by the NCI were tested for their HIV-1 reverse transcriptase inhibition.

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