Integrating

design

synthesis

and

assembly

of

structured

objects

in

a

visual

design

language

Computer

Aided

Design

systems

provide

tools

for

building

and

manipulating

models

of

solid

objects.

Some

also

provide

access

to

programming

languages

so

that

parametrised

designs

can

be

expressed.

There

is

a

sharp

distinction,

therefore,

between

building

models,

a

concrete

graphical

editing

activity,

and

programming,

an

abstract,

textual,

algorithm-construction

activity.

The

recently

proposed

Language

for

Structured

Design

LSD

was

motivated

by

a

desire

to

combine

the

design

and

programming

activities

in

one

language.

LSD

achieves

this

by

extending

a

visual

logic

programming

language

to

incorporate

the

notions

of

solids

and

operations

on

solids.Here

we

investigate

another

aspect

of

the

LSD

approach;

namely,

that

by

using

visual

logic

programming

as

the

engine

to

drive

the

parametrised

assembly

of

objects,

we

also

gain

the

powerful

symbolic

problem-solving

capability

that

is

the

forté

of

logic

programming

languages.

This

allows

the

designer/programmer

to

work

at

a

higher

level,

giving

declarative

specifications

of

a

design

in

order

to

obtain

the

design

descriptions.

Hence

LSD

integrates

problem

solving,

design

synthesis,

and

prototype

assembly

in

a

single

homogeneous

programming/design

environment.

We

demonstrate

this

specification-to-final-assembly

capability

using

the

masterkeying

problem

for

designing

systems

of

locks

and

keys.

The

many

definitions

of

the

term

"design"

do

not

agree

in

detail.

A

notion

common

to

them

all,

however,

is

that

design

is

a

purposeful

activity,

oriented

towards

producing

some

descriptions

from

a

set

of

specifications

that

describe

the

function

that

the

designed

artifact

is

to

achieve.

Descriptions

resulting

from

design

activity

contain

components

of

the

design

and

their

relationships,

and

represent

the

designed

artifact

in

a

form

that

facilitates

manufacture,

assembly,

or

construction

(Gero,

Design

compilation

is

the

automatic

generation

of

the

design

descriptions

from

specifications..

Design

is

an

essential

part

of

many

creative

activities.

Notably,

it

is

an

integral

part

of

engineering

practice.

Hence,

good

engineering

requires

good

design.

Good

design,

in

turn,

calls

for

appropriate

design

tools

and

methodologies

(Waldron,

Electrical

and

mechanical

engineering

are

two

examples

of

problem

domains

in

which

design

tools

play

a

pivotal

role,

to

the

extent

that

designing

today's

state-of-the-art

Very

facturing

(Nackman

et

al.,

Others

result

from

a

desire

to

provide

formal

and

general

underpinnings

for

geometric

modelling

in

CAD

systems

(Snyder,

Heisserman

Woodbury,

and

Paoluzzi,

Pascucci

Vicentino,

The

language

PLASM

for

example,

is

a

functional

language

in

which

geometric

objects

are

defined

as

functions

(Paoluzzi,

Pascucci

Vicentino,

and

more

complex

objects

are

created

by

combining

functions

using

appropriate

functional

operators.

A

PLASM

function

can

be

evaluated

to

produce

representation

of

the

object

it

describes.

This

representation

can

then

be

exported

to

other

formats

and

used

by

other

application

to

produce

a

D

rendering.

Clearly,

this

model

for

solids

provides

for

parametrisation,

since

a

function

generates

a

variety

of

different

objects

depending

on

the

values

provided

for

its

formal

parameters.

Also,

parameters

can

themselves

be

functions

representing

solids,

so

the

notion

of

operations

on

solids

is

also

captured..

Design

languages

for

solid

objects

are

analogous

to

languages

such

as

VHDL

for

VLSI

design

in

that

they

provide

very

powerful

programming

capability

in

a

textual

language,

but

lack

the

direct

visual

manipulation

provided

by

CAD

environments.

The

authors

of

PLASM

acknowledge

the

necessity

for

visual

representations,

saying

"Our

long

term

goal

is

to

develop

a

visual

language

shell

around

a

PL

a

SM

nucleus.

Thus,

it

will

become

possible

to

build

personalized

graphics

interfaces

where

both

the

designer/user

and

the

PL

a

SM

application

programmer

will

be

comfortably

accommodated"

(Paoluzzi,

Pascucci

Vicentino,

Their

intention,

therefore,

was

not

to

build

a

single

visual

language,

but

a

system

within

which

different

visual

languages

could

be

built

for

the

designer

and

the

programmer.

To

our

knowledge,

no

such

visual

language

shell

for

PLASM

has

been

developed..

In

an

effort

to

remove

the

sharp

distinction

between

designing

and

the

programming

required

to

achieve

parametrisation,

mentioned

above,

and

to

represent

both

activities

visually,

the

visual

design

language

LSD

(Language

for

Structured

Design)

was

proposed

by

Cox

and

Smedley

LSD

is

based

on

a

visual

logic

programming

language,

Lograph

(Cox

Pietrzykowski,

extended

by

the

introduction

of

"explicit

components",

a

logical

manifestation

of

solid

objects,

and

a

new

execution

rule

to

combine

them..

The

original

LSD

as

a

simple

exploration

of

the

notion

of

design

in

a

visual

language,

had

just

one

operation

on

solids.

However,

the

selection

of

operations

required

in

a

design

language

depends

on

the

domain

of

application,

so

LSD

clearly

needed

to

be

extensible.

As

a

basis

for

extensibility,

a

very

general

notion

of

a

design

space

was

required,

providing

just

enough

detail

to

capture

the

essence

of

solids

in

logic.

To

meet

this

need,

a

formal

model

for

characterising

objects

in

a

design

space

was

proposed

by

Cox

and

Smedley

where

a

design

space

consists

of

multidimensional

space

(normally

augmented

with

extra

dimensions

representing

properties.

This

formalisation

also

defines

the

concept

of

an

operation

on

solids,

and

selective

interfaces

that

allow

solids

to

declare

what

operations

can

be

applied

to

them.

Based

on

this

model,

the

required

generalisation

of

LSD

was

made.

It

is

important

to

note

that

this

formalisation

characterises

solids

and

operations

only

to

the

extent

required

by

LSD

so

does

not

address

any

of

the

practical

details

of

solid

modeling.

Nevertheless,

we

will

refer

to

it

as

the

"solid

modeler"

in

the

following..

As

a

visual

language

for

describing

parametrised

designs,

LSD

has

similar

characteristics

to

the

visual

language

shell

proposed

by

the

designers

of

PLASM

Specifically,

it

is

a

visual

language

shell

that

can

be

customised

by

the

addition

of

domain-specific

components

and

operations,

and

accommodates

both

designer

and

programmer

(who

could

be

the

same

person)..

Interestingly,

the

work

on

design

languages

in

the

CAD

community

has

concentrated

on

the

ability

of

these

languages

to

describe

designs,

without

examining

their

potential

for

solving

design

problems

in

order

to

generate

design

descriptions.

This

may

be

a

consequence

of

the

fact

that

solving

design

problems

frequently

involves

searching

large

spaces,

a

task

directly

supported

by

few

languages

other

than

logic-based

ones.

For

example,

the

automated

house-design

system

reported

by

Rau-Chaplin,

MacKay-Lyons

and

Spierenburg

is

implemented

in

Prolog,

and

applies

rules

to

generate

and

filter

very

large

spaces

of

house

designs

based

on

criteria

specified

by

the

user..

Although

the

original

impetus

behind

LSD

was

to

provide

a

visual

language

for

designing

parametrised

objects,

the

fact

that

it

inherits

logic-programming

problem-solving

and

search

capabilities

from

Lograph

enables

LSD

to

also

address

design

specification

The

user

of

an

LSD

-based

CAD

system

could,

therefore,

construct

a

visual

logic

program

that

implements

a

solution

to

a

design

problem.

Executing

a

query

that

specifies

an

instance

of

this

problem

would

generate

a

design

description

and

assemble

the

resulting

artifact

in

one

continuous,

observable

process.

This

possibility,

initially

proposed

by

Banyasad

and

Cox

is

explored

below

via

a

detailed

example

using

the

masterkeying

problem..

CAD

systems

are

inherently

visual.

The

designer

"debugs"

by

observing

the

designed

artifact

from

different

angles,

in

different

representations

(e.g

wireframe),

etc.,

and

refining

it

to

remove

errors.

When

programming

for

parametrising

or

problem

solving

is

added,

interpretive

execution

must

be

included

in

the

debugging

process.

In

LSD

execution

rules

can

be

animated

as

graph

transformations.

This

raises

certain

implementation

issues,

which

although

not

central

to

the

main

theme

of

this

paper,

are

important

if

a

practical

LSD

-based

CAD

system

is

to

be

developed.

We

will

discuss

these

briefly

in

Section

We

have

demonstrated

how

LSD,

a

language

initially

proposed

as

a

means

for

unifying

the

design

and

programming

aspects

of

complex

design

specifications,

can

also

provide

a

convenient

platform

for

solving

design

problems.

The

visual

nature

of

LSD,

combined

with

the

strengths

of

logic

programming

that

it

inherits

from

Lograph,

provide

a

unique

combination

for

solving

such

problems..

We

also

noted

that

the

problem-solving

phase

of

execution

naturally

precedes

assembly

of

the

final

objects.

However,

this

need

not

be

the

case.

The

masterkeying

example

also

showed

how

LSD

can

allow

component

level

design

to

be

cleanly

separated

from

system

level

design,

where

designs

describe

components

and

a

design

specification

prescribes

the

system..

We

also

discussed

the

importance

of

appropriate

techniques

for

editing

and

debugging

LSD

programs

and

mentioned

that

animation

of

LSD

execution

rules

may

provide

valuable

feedback

to

the

user

of

LSD

for

debugging

purposes.

While

the

animation

of

deletion,

merge,

and

replacement

in

an

implementation

of

LSD

may

be

inherited

from

its

underlying

Lograph

implementation,

animation

of

the

application

of

operations

to

solids

require

the

knowledge

of

physical

properties

of

solids

and

therefore

must

be

dealt

with

by

an

associated

solid

modeler.

We

formally

defined

animation

of

operations

in

solid

modeling

terms

and

presented

as

an

example

the

animation

of

the

bonding

operation..

Like

programs

in

other

logic

programming

languages,

an

LSD

program

can

be

run

with

uninstantiated

variables.

Similar

to

fully

constrained

assemblies,

an

assembly

containing

uninstantiated

variables

stops

when

the

design

specification

is

transformed

into

an

instance

of

a

solid.

Note

that

the

uninstantiated

variables

in

a

design

specification

will

disappear

during

the

assembly

as

they

are

merged

with

the

constants

in

the

program

or

simply

are

deleted.

For

example,

imagine

a

design

specification

that

consists

of

an

implicit

component

Key

and

a

fixed-length

list

with

uninstantiated

elements

as

the

input

to

Key

(e.g.,

Figure

(a)

with

all

the

constants

except

removed).

Assembling

such

a

design

specification

will

produce

a

key

with

n

bits

where

n

is

the

length

of

the

input

list.

Forcing

backtracking,

in

order

to

find

more

solutions,

will

create

another

key

with

a

different

combination

of

bits.

Clearly,

by

forcing

backtracking

we

can

enumerate

all

possible

implementations

of

an

n-bit

key.

However,

running

a

query

that

consists

of

an

implicit

component

Key

with

an

uninstantiated

variable

as

its

input

will

initially

generate

a

key

with

no

bits

(a

handle

and

a

tip).

Then,

by

forcing

backtracking,

we

can

generate

all

single-bit

keys,

two-bit

keys,

and

so

forth..

In

another

thread,

LSD

can

be

augmented

with

constraint

logic

programming

in

order

to

further

improve

its

programming

capabilities

for

practical

purposes.

We

are

currently

investigating

this

aspect

of

LSD

and

aim

to

improve

the

language

by

integrating

recent

developments

in

constraint

logic

programming..

It

is

also

important

to

note

that

LSD

is

an

extendible

language

in

the

sense

that

any

operation

in

any

design

domain,

as

defined

by

Cox

and

Smedley

can

be

added

to

it.

Hence

LSD

can

express

design

problems

in

any

such

design

domain.

Also,

given

that

Lograph

is

a

logic

programming

language,

it

has

the

capacity

to

represent

any

computation

representable

in

other

logic

programming

languages

such

as

Prolog..

An

implementation

of

Lograph

is

presently

under

way

Cox,

and

Cox,

More

information

on

the

current

status

of

the

Lograph

project

can

be

found

at

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


Visualizing Gyrokinetic Simulations Figure 1: Interactive volume visualization for gyrokinetic simulations presents some unique challenges to existing commercial software packages due to the mesh structure, size, and complexity of the data.The continuing advancement of plasma science is central to realizing fusion as an inexpensive and safe energy source. Gryokinetic simulations of plasmas are fundamental to the understanding of turbulent transport in fusion plasma. This paper discusses the visualization challenges presented by gyrokinetic simulations using magnetic field line following coordinates, and presents an effective solution exploiting programmable graphics hardware to enable interactive volume visualization of 3D plasma flow on a toroidal coordinate system. The new visualization capability can help scientists better understand three-dimensional structures of the modeled phenomena. Both the limitations and future promise of the hardware-accelerated approach are also discussed. Fusion energy research gives promise to environmental attractive, commercially viable, sustainable energy source for the next century. A large part of the worldwide fusion research effort goes into the development of numerical codes to simulate real experiments. By effectively utilizing the full power of modern supercomputers, fusion codes can simulate the movement of billions of particles over thousands of time steps in complex geometry. Advanced visualization is necessary for extracting the key physics from the large amounts of data generated by these simulations.. To numerically study magnetic confinement and transport physics in the fusion process, the gyrokinetic model [3, 4] has been shown to be effective in modeling turbulent transport and highly efficient on many massively parallel computing platforms. However, existing visualization systems do not provide adequate capability to support the analysis of advanced gyrokinetic simulations of plasma turbulence. These simulations produce enormous amounts of data along a mesh which follows the magnetic field lines. Scientists need to be able to freely vary the visualized parameters and interactively browse the data. Local and global details must be captured at the highest available resolution. Rendering the particle paths is needed in addition to displaying the parameter values in order to gain understanding and new scientific insights from the data. This paper discusses the visualization challenges presented by gyrokinetic simulations and introduces a new volume rendering strategy leveraging the programmable features of PC graphics hardware to enable interactive visualization of plasma flow in toroidal systems. The interactive 3D visualization technique gives the scientists at the Princeton Plasma Physics Laboratory (PPPL) new ability to examine the structure and evolution of the volumetric, tubular features in their turbulence simulation data. The resulting visualizations also allow scientists to more effectively communicate their findings to others. The GTC particle-in-cell nonlinear microturbulence code has utilized the full computing power of the modern supercomputers to produce outstanding scientific results. Our ultimate goal is to address the major visualization challenges associated with the increasingly large data sets from GTC. In this paper we present our experience in making use of commodity graphics hardware to address the irregular grid problem. We show interactive volume visualization of the data on a single PC. This new capability offers scientists the power to examine the volumetric, tubular structures in the turbulence data.. For large meshes, like the largest one consisting of 59 million points, a much larger texture would be needed to retain accuracy. Our hardware accelerated technique can be implemented on a PC cluster to render texture of that size at interactive rates. We envision a multiresolution approach to the large data problem. That is, the scientist will switch between interactive browsing in the temporal, spatial and variable domains of the data and a close-up view of some region of interest by resampling on the fly the corresponding subset of the highest resolution data. Furthermore, these visualization techniques are valuable for most of the datasets produced in fusion simulations, since they work in toroidal coordinates.. Future work includes temporal-space animation and the incorporation of particle visualization along with volume visualization. A parallel data streaming approach has been developed to efficiently transfer terabytes of time-varying data generated by the Gyrokinetic code for data analysis and visualization [2] . We will set up a parallel rendering pipeline coupled with the data streaming method for simultaneous visualization of volume and particle data. The gyrokinetic data has been previously analyzed using isosurfaces, but not with volume visualization techniques. With isosurface visualization, only a selection of data values would be seen, possibly leaving out critical and or surprising information that could have been available with a volume visualization. This program was brought forward as an option for a different style of analysis. Both techniques have pros and cons, leading to different but complementary uses. Direct volume rendering gives holistic viewing of the data to see all of the tubular structure in ways impractical for isosurface techniques. The time required for isosurface creation can become prohibitively expensive as datasets increase in size and detail but isosurface visualization scales between display sizes with little penalty.. Volume visualization has different aspects affecting visualization time, including texture creation time and the pixel count of the viewing window. Texture creation time is linear with respect to not dataset size, but texture size, which can be adjusted as detail requires. And with current graphics hardware, high quality textures can be held on-card, at which point texture size is nearly decoupled from rendering speed. As this program is shader-limited, render time is proportional to the number of pixels and the sample plane density. Thus for a given image, the current implementation would not work well for large displays or powerwalls. However, it does have application as a possible monitoring tool for viewing datasets as time slices of the simulation are generated.. While interactive volume visualization is attractive, the current hardware accelerated approach suffers from two types of artifacts. The first type of artifacts is due to insufficient sampling rate in the the front and back of the volume; depending on how the viewaligned slices intersect with the poloidal data slices, different level of blurriness may appear in those regions. The second type is mainly transfer-function dependent, but has also to do with the crude hardware interpolation employed. The former can be slightly alleviated by employing more view-aligned slices but not be completely removed. The latter would require accurate interpolation following the tubular structure which is not currently practical to do in hardware due to the increased complexity of the shader program. Nevertheless, the interactivity possible still makes the hardware rendering approach attractive since scientists can freely vary transfer functions and view to tell what are artifacts and what are physical features.

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


An intelligent condition-based maintenance platform for rotating machinery An intelligent condition-based maintenance platform for rotating machineryTran, Van Tung and Yang, Bo-Suk (2012) An intelligent condition-based maintenance platform for rotating machinery. Expert Systems With Applications, 39 (3). pp. 2977 -2988 This version is available at http://eprints.hud.ac.uk/16584/ The University Repository is a digital collection of the research output of the University, available on Open Access. Copyright and Moral Rights for the items on this site are retained by the individual author and/or other copyright owners. Users may access full items free of charge; copies of full text items generally can be reproduced, displayed or performed and given to third parties in any format or medium for personal research or study, educational or not-for-profit purposes without prior permission or charge, provided:• The authors, title and full bibliographic details is credited in any copy;• A hyperlink and/or URL is included for the original metadata page; and • The content is not changed in any way.For more information, including our policy and submission procedure, please contact the Repository CBM platform is proposed in this paper to be applied for rotating machinery easily and effectively. Subsequently, two case-studies are presented in order to evaluate the effectiveness of this platform in industrial applications. A failure in industrial equipment results in not only the loss of productivity but also timely services to customer, and they may even lead to safety and environmental problems. This emphasizes the necessity of maintenance in manufacturing operations. Maintenance can sustain the reliability and availability of product equipments, improve the product quality, increase productivity, and undertake the safety requirements. However, the general opinion is that maintenance is a necessary evil or nothing can be done to improve maintenance costs. Indeed, the cost of maintenance contributes a large part of the total operating and production cost in specific capital-intensive industries. For example, maintenance cost as a percentage of totals value-added could be up to 20-50% for mining, 15-25% for primary metal and 3-15% for processing and manufacturing industries (Campbell, 1995) . Additionally, with the augment of mechanization and automation, many modern plants have installed flexible automatic computercontrolled and unmanned equipments, the maintenance costs have been increased substantially.. Consequently, an efficient and reasonable maintenance strategy is necessary for implementation so that the minimum maintenance costs could be attained.. The maintenance strategies could be broadly classified into two categories, namely corrective maintenance (CM) and preventive maintenance (PM) (Tsang, 1995; Lebold et al., 2003) , and summarized in Table 1 . CM, also known as breakdown maintenance, is frequently performed by unplanned activities and implemented after the occurrence of an obvious functional failure, malfunction, or breakdown of the equipment. Its actions can store the functional capabilities of failed components by either repairing the defect or replacing the new ones. PM involves scheduled maintenance and condition-based maintenance (CBM). Scheduled maintenance is periodically carried out by lubricating, calibrating, refurbishing, inspecting, and checking equipment for each fixed period of time to lessen the deterioration leading to faults.. This helps prevent the functional failures by replacing critical components at regular intervals which are shorter than their expected useful lives. However, random stoppages of equipment in CM or frequent replacements of the expensive components before the end of their lives in scheduled maintenance result in high cost of maintenance.. CBM is a method to reduce the uncertainty of maintenance activities that frequently encounter in other strategies. In CBM, equipment operating conditions are continuously monitored to identify the need for maintenance in real time. The actual preventive actions are only taken when an incipient failure is supposed to have been detected. Therefore, CBM can significantly reduce the maintenance costs by reducing the number of unnecessary scheduled PM operations if properly established and effectively implemented. For that reason, CBM has been received great attention of researchers and practical maintainers. Generally, a CBM system comprises a number of functional modules: sensing and data acquisition, signal processing, feature extraction and feature selection, condition monitoring and health assessment, diagnostics, prognostics, decision reasoning, and human system interface.. Therefore, in order to implement CBM system, it is required to integrate a variety of hardware and software components. In recent times, these components have been continuously improved to be applied and practiced in different applications by several researches. In case of hardware component, thanks to the fast forwarding development of sensor industry, not only the price and the size of sensors have been reduced but also more tasks have been performed in benchmarking with the conventional ones. A new sensor generation which involves micro-electromechanical systems and smart sensors has been employed for CBM to improve the sensor reliability and accuracy. Owing to the advantages of mutual information from multiple sensors, sensor fusion techniques are commonly engaged to lead the superiority. In case of software component, numerous standalone approaches have been fruitfully developed to implement the CBM system for rotating machinery. Most of these approaches focus on fault diagnostics and prognostics and fall into three main categories: statistical-based, model-based, and data driven-based. The applications of these approaches for rotating machinery could be found in the studies of Jardine (Jardine et al., 2006) and Heng (Heng et al., 2009 ).. Even though standalone approaches in progress have been developed in literature, there are several fundamental opportunities to be considered:. • Most of existing approaches are able to apply for specific equipment. A scalable methodology or systematic toolbox for generic machinery does not exist.. • Several developed algorithms have been demonstrated in a laboratory environment without any industrial validations.. • Currently, methods are generally focused on solving the failure prediction issue. Tools for system performance assessment and degradation prediction have not been well addressed.. Furthermore, estimating the remaining lifetime of machinery is still a challenge of prognostics.. • There is no available platform that can be applied for various rotating machinery.. In recent years, several methods in our studies have been developed and applied for various rotating machinery in the range of signal processing to prognostics. For instance, wavelet transform and statistical method, which were used to extract salient features from raw noise and vibration signals, were combined with self-organizing feature map, learning vector quantization and support vector machine (SVM) for detecting and classifying faults of reciprocating refrigerator compressors ). An expert system, namely VIBEX, was proposed to aid plant operators in diagnosing the cause of abnormal vibration for rotating machinery . The decision tree in this system was used as an acquisition of structured knowledge to obtain the diagnosing rules from decision table which is built by the causesymptom matrix. The integration of case-based reasoning with other methods such as Petri nets, adaptive resonance theory, the learning strategy of Kohonen neural network, etc was introduced to the fault diagnosis of induction motors . Other our works in diagnostic area could be found in references (Niu et al., 2007; Widodo et al., 2007; Niu et al., 2008; Tran et al., 2008; Son et al., 2009) . Alternatively, in prognostic area, we have proposed numerous models for forecasting future states (Tran et al., 2008; Niu et al., 2009; , assessing the degradation .. Although most of our researches were validated in industrial equipment, they still were standalone approaches. In order to compensate for the remaining shortcomings mentioned above, a systematic platform based on intelligent algorithms, namely intelligent CBM (I-CBM), is proposed in this study. This platform consists of sequent modules: data acquisition, signal processing, feature extraction and feature selection, condition monitoring and health assessment, fault diagnostics, and prognostics. Two case-studies are presented to perform the effectiveness of this platform in industrial application. This study proposes the I-CBM platform based on standalone data-driven approaches as a comprehensive system for rotating machinery. This platform contains necessary modules to adequate the request for CBM system involved hardware and software components. A toolbox has also been developed as a software component to easily and conveniently implement this platform in application. Two industrial cases are used to validate the effectiveness of the I-CBM platform. The accurate results obtained from these cases indicate that the I-CBM platform can fulfill the shortcomings of previous approaches i.e. systematic tool for various rotation machinery, performance degradation assessment, remaining lifetime estimation, and industrial validation.

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


Roots of Ehrhart Polynomials of Smooth Fano Polytopes Abstract. V. Golyshev conjectured that for any smooth polytope P with dim(P ) ≤ 5 the roots z ∈ C of the Ehrhart polynomial for P have real part equal to −1/2. An elementary proof is given, and in each dimension the roots are described explicitly. We also present examples which demonstrate that this result cannot be extended to dimension six. Let P be a d-dimensional convex lattice polytope in R d . Let L P (m) := mP ∩ Z d denote the number of lattice points in P dilated by a factor of m ∈ Z ≥0 . In general the function L P is a polynomial of degree d, called the Ehrhart polynomial [Ehr67] .. The roots of Ehrhart polynomials have recently been the subject of much study (for example [BHW07, BD08, HHO10, Pfe07]), with a significant portion of this work being based on exhaustive computer calculations using the known classifications of polytopes. It has been conjectured in [BDLD + 05] that if z ∈ C is a root of L P , then the real part Re(z) is bounded by −d ≤ Re(z) ≤ d − 1; Braun has shown [Bra08] that z lies inside the disc centred at −1/2 of radius d(d − 1/2). Definition 1.1. A convex lattice polytope P is called reflexive if the dual polytope. is also a lattice polytope.. There are many interesting and well-known characterisations of reflexive polytopes (for example [HK10, Theorem 3.5]). They are of particular relevance to toric geometry: reflexive polytopes correspond to Gorenstein toric Fano varieties (see [Bat94] ) and have been classified up to dimension four.. Any reflexive polytope P satisfies (1.1). where ∂P denotes the boundary of P . As a consequence, Macdonald's Reciprocity Theorem [Mac71] tells us that. In particular we observe that the roots of L P are symmetrically distributed with respect to the line Re(z) = −1/2. Clear any smooth polytope is simplicial and reflexive. Smooth polytopes are in bijective correspondence with non-singular toric Fano varieties, and have been classified up to dimension eight [Øbr07] .. V. Golyshev conjectured in [Gol09, §5] that, for any smooth polytope P of dimension d ≤ 5, the roots z ∈ C of L P satisfy Re(z) = −1/2 (the "canonical line hypothesis"). Notice that it is not required that z / ∈ R. We prove Golyshev's conjecture without resorting to the known classifications -see Sections 2 and 3 below.. Explicit descriptions of the roots are given in Corollaries 2.6 and 3.8. We summarise them in the following theorem. Theorem 1.6. Let P be a smooth d-dimensional polytope, and suppose that z = −1/2 + βi ∈ C is a root of L P . If d = 2 then. The following example demonstrates that we cannot extend Theorem 1.5 to dimension 6. Example 1.7. There exist exactly four smooth polytopes in dimension six having roots z of the Ehrhart polynomial such that Re(z) = −1/2; in each case z / ∈ R. The second polytope has roots where Re(z) > 0, and where Re(z) < −1. This demonstrates that the more general "canonical strip hypothesis" does not hold in dimension six. In four dimensions one can prove Theorem 1.5 without knowing the explicit equation for the Ehrhart polynomial. We require the following result. Tables 1 and 2. f 0 6 7 7 8 8 8 8 9 9 9 9 9 10 10 10 b 2 21 27 28 33 34 35 36 40 41 42 43 44 46 49 50 f 0 10 10 10 11 11 11 11 11 11 12 12 12 13 14 b 2 51 52 53 56 58 59 60 61 62 66 67 72 76 86 Table 2 . The possible pairs (f 0 , b 2 ) for the 866 five-dimensional smooth polytopes.

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


An efficient finite-domain constraint solver for circuits This paper presents a novel hybrid finite-domain constraint solving engine for RTL circuits. We describe how DPLL search is modified for search in combined integer and Boolean domains by using efficient finite-domain constraint propagation. This enables efficient combination of Boolean SAT and linear integer arithmetic solving techniques. We automatically use control and data-path abstraction in RTL descriptions. We use conflict-based learning using the variables on the boundary of control and data-path for additional performance benefits. Finally, we analyze the hybrid constraint solver experimentally using some example circuits. Numerous electronic design automation (EDA) problems can be efficiently represented by a combination of Boolean and integer constraints -like formal verification and functional test generation for RTL circuits. A combined decision procedure (CDP) that integrates decision procedures for Boolean and integer domains should be ideal for solving such problems. Boolean Satisfiability (SAT) solvers have improved significantly over the last few years [13, 17] . SAT solvers are now frequently applied to EDA problems that are expressible as propositional SAT instances. However, they still face problems of scalability for large RTL designs. Decision procedures for integer domains such as the Omega test [11] , based on Fourier-motzkin elimination [6] (FME) are very efficient for checking satisfiability of large sets of integer constraints. However, they ignore the distinction between Boolean and integer domains in the problem for efficiency in the general case. EDA problems on RTL circuits appear to be such that neither a SAT solver nor an integer constraint solver can solve them individually in a reasonable time. RTL circuit descriptions typically have well defined sets of Boolean and integer variables. This property allows automatic partitioning of Boolean control and word-level data-path. We use such a partition to integrate specialized methods for Boolean domains and integer domains without sacrificing the efficiency of each solver. The main contribution of this paper is an attempt to generalize the key elements of efficient DPLL search to an efficient FD constraint solver for RTL circuits. In our approach, we systematically modPermission 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, republish, post on servers or redistribute to lists, requires prior specific permission and/or a fee. ify DPLL [7] , a well-known branch-and-bound algorithm into a hybrid DPLL (HDPLL) algorithm, that integrates solvers for Boolean and integer domains into a cohesive whole. We augment this with conflict-based learning to drive search into a solution space efficiently. The rest of this paper is organized as follows: In Section 2, we describe the relevant prior work. In Section 3, we describe some concepts that are used to explain our approach. In Section 4, we describe a novel hybrid DPLL constraint-solving (HDPLL) algorithm, which integrates Boolean search and fourier-motzkin elimination using FDCP. We also describe modeling issues and our efficient implementation of the FDCP. In Section 6, we describe how we use conflict-based learning to bound hybrid search. In Section 7, we describe our experiments to show proof-of-concept of our approach. Finally, we discuss the results of the experiments in Section 8. We present an efficient modified DPLL constraint solver for RTL circuits. We show that FDCP can mitigate the problems involved in solving combined Boolean and arithmetic constraints. We describe a strategy of driving the hybrid search into the solution space efficiently by conflict-based learning on the control-data interface. We show that the integration of constraint propagation in arithmetic and Boolean domains provides considerable performance improvement on our benchmarks. However, the approach requires extensive testing on a variety of benchmarks, before we make any broad conclusions. The EDA applications of such a solver are considerable. We shall improve some fundamental aspects of the hybrid solver and applying it to EDA problems in future. The current investigation into HDPLL raises some issues, which we shall address in our future work. Proof Production: The experiments demonstrates that performance depends on effective conflict-based learning across control and datapath. The conflict analysis implemented does not support unified analysis for UIP learning on a hybrid implication graph. It also does not use information from the FME procedure for better learning. We shall rectify this in our future work. Decision Ordering: Currently, we do not make full use of structure of the data-path to guide the decision strategy. We shall investigate methods for improving this in the future. A primitive constraint is a finite-domain constraint with at most three terms. We denote the set of primary inputs of the RTL circuit by PI, and the set of primary outputs by PO. Present state variables or pseudo-primary inputs are denoted by PPI and next state variables or pseudo-primary outputs by PPO. We may now view satisfiability on circuits with Boolean and arithmetic operations with Boolean and word-level variables as a FD constraint solving problem.

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


The MMD codes are proper for error detection The undetected error probability of a linear code used to detect errors on a symmetric channel is a function of the symbol error probability " of the channel and involves the weight distribution of the code. The code is proper, if the undetected error probability increases monotonously in ". Proper codes are generally considered to perform well in error detection. We show in this paper that the Maximum Minimum Distance (MMD) codes are proper. Let GF(q) denote the Galois eld with q elements. An n; k; d] q code C is a k-dimensional subspace of the n-dimensional vector space over GF(q) with minimum Hamming distance d. The weight distribution fA 0 ; A 1 ; : : : ; A n g of C consists of the numbers A i of codewords of weight i in C; 0 i n. When C is used to detect errors on a q-nary symmetric channel with symbol error probability ", the probability of undetected error P ue (C; ") is given by P ue (C; ") = q : (1) C is proper, if P ue (C; ") is monotonously increasing in " 2 0; q?1 q ] (see 6] , 7], and 9]). A proper code is generally considered to perform well in error detection. In particular, such a code is good ( 6] , 7]), i.e., P ue (C; ") becomes largest at " = q?1 q , the worst case symbol error probability. (2) C is called a maximum minimum distance (MMD) code. It turns out that for a MMD code with positive defect, the corresponding number m in (2) is equal to the defect of the dual code. Two codes with the same weight distribution are said to be formally equivalent. It follows from (1) that two formally equivalent codes have the same undetected error probability.. In 5] and 10], the MMD codes have been classi ed up to formal equivalence. Below we present this classi cation.. G1. Let C be an n; k; d] q code of dimension k 3 and defect s 1. Then C is a MMD code if and only if C is formally equivalent to one of the following codes: (6) then the inequalities (5) hold and C is thus proper.

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


Newton's method with deflation for isolated singularities of polynomial systems We present a modification of Newton's method to restore quadratic convergence for isolated singular solutions of polynomial systems. Our method is symbolic-numeric: we produce a new polynomial system which has the original multiple solution as a regular root. Using standard bases, a tool for the symbolic computation of multiplicities, we show that the number of deflation stages is bounded by the multiplicity of the isolated root. Our implementation performs well on a large class of applications. Let F (x) = 0 be a polynomial system of N equations in n unknowns x ∈ C n . We are interested in x * , an isolated solution of F (x) = 0:. for small enough ǫ > 0 : { y ∈ C n : ||y − x * || < ǫ } ∩ F −1 (0) = {x * }.. Newton's method (also called the method of Gauss-Newton when N > n) generates a sequence of approximations x k for x * . If x * is nonsingular, then the sequence converges quadratically (i.e.: x k − x k+1 = O( x k−1 − x k 2 )) to x * , which justifies its widespread usage. But otherwise, if x * is singular, the convergence slows down and gets lost when x k ≈ x * .. The brutal force approach is to use a working precision of m × D decimal places to achieve D correct decimal places in the final approximation. Even as multiprecision arithmetic is widely available and nowadays less expensive to use, this approach can only work if all coefficients in the system F have their first m × D decimal places correct. Our goal is to restore the quadratic convergence of a sequence converging to an isolated singular root without imposing extra requirements of precision on F .. Newton's method for singular solutions has been extensively researched. The research up to the mid eighties is surveyed in [18] . We classify research related to our work in two domains:. 1. Detection and treatment of bifurcation points. When following a solution path of a system defined by a parameter, the solution path may turn back or bifurcate for increasing values of the parameter. Techniques to detect and compute such bifurcation points are generally done via LiapunovSchmidt reduction [1] [15]; see also [29, 30] , [10] , [23] , and the references cited therein. Our modified deflation method works in general, is numerically stable, relatively simple to implement; and perhaps most importantly, a preliminary implementation on a wide class of examples performs quite well.. However, the doubling of the number of equations by deflation quickly leads to huge systems, we will search for ways to limit the number of deflations.

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


Verifying the correctness of FPGA logic synthesis algorithms Though verification is significantly easier for FPGA-based digital systems than for ASIC or full-custom hardware, there are nonetheless many places for errors to occur. In this paper we discuss the verification problem for FPGAs and describe several methods for verifying end-to-end correctness of synthesis algorithms, a particularly complex portion of the CAD flow. Though the primary contribution of this paper is the analysis of the overall problem, we also give an algorithm for the automatic generation of test-vectors for simulation using information from the synthesis tool, and describe a second testing method that generates purposefully difficult designs in combination with input vectors to test them. We will show the validity of these methods by standard metrics such as simulation node-coverage and through the ability for the method to locate forced errors introduced by the synthesis tool. One of the key advantages of FPGA-based systems is the ability for a hardware designer to very quickly generate functional hardware. Though this is often stated in terms of the high cost of mask generation and fabrication NREs, these costs are increasingly dominated by the test and verification problem.. Testing includes checking for several criteria: that the HDL code meets specification, that the CAD tools correctly processed the code, and that the eventual chip functions properly, including timing. Figure 1 shows a typical CAD flow, highlighting the verification steps. In an FPGA-based design there is no chip-test required by the designer, because verification of the programmable logic fabric is performed by the FPGA vendor.. Vendors test each chip for fabrication defects with manually and automatically generated deterministic test vectors, and then bin individual chips based on their performance. A great deal of effort can be put into the former problem, because the cost of test generation is amortized across the thousands of different hardware designs which eventually use the device. To some extent the vendor also solves the timing simulation problem because the binning of devices into speed-grades gives increased confidence to the user that functional operation will match in-system timing.. The efforts put into test generation for a specific design in the ASIC flow have a secondary benefit: they test the correctness of complicated algorithms in synthesis, placement, routing and timing analysis in the CAD tools. Chip testing by FPGA vendors guarantees the correctness of the FPGA hardware, but does not also test the design or synthesis of the design being implemented on it.. As a software problem, synthesis algorithms are tested by many standard methods, including hand-created regression tests, design and code reviews, proofs of algorithmic correctness to name a few. However, it is always advantageous to supplement these with end-to-end testing on large designs to quickly locate errors, and this is especially true during the early debugging phase.. In this paper we will concentrate on perhaps the most difficult aspect of the CAD flow to test, namely the synthesis of hardware models into gate-level netlists. Synthesis is harder to verify 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, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. because relatively simple errors, such as inverting one signal, maintain the connectivity and timing paths in the gate-level netlist. Errors in connectivity can generally be identified deterministically whereas functional equivalence of Boolean logic is NP-hard.. The compounding problem from the CAD designer's point of view is more pragmatic. Software engineers working on tools for logic synthesis are almost never the same people creating the hardware design. Most complete example designs are large complicated systems provided as-is through problem reporting or to maintain customer-supplier relationships.. CAD designers rarely receive simulation test-vectors or enough information about the design to create them manually, and designs are often incomplete or insufficiently tested at the behavioral level. One notable exception is FPGA vendors internally generated IP, which is a great source of high-quality finished test designs with welldesigned vectors and often complicated functionality. Further problems with testing on FPGAs include non-synthesizable hardware such as embedded RAM and dedicated DSP (multiplier) hardware, and complicated registers with multiple clock-domains.. The testing goals of hardware and software designers are also different. A hardware designer is interested in testing one design over the course of its development cycle of 6 months or more and can put significant effort into test generation, formal verification, and even develop their hardware models with test in mind (BIST and design-for-test). Tool designers want to test their tools on hundreds of different designs quickly and easily and have no influence on the design of the original hardware.. Our goal is to supplement standard software testing with tools to automatically detect incorrect logic introduced by synthesis algorithms. The standard methods for ensuring software quality involve regression tests, algorithm and code reviews, assertions and cross-check code and multiple other forms of independent testing. These techniques can be aided by end-to-end testing of large designs. Specifically, we want to analyze the correctness of the entire synthesis system through algorithmic changes, including advanced sequential synthesis algorithms such as retiming and other manipulation of registers.. Automatic testing serves a further purpose to speed the debugging process, since many of the formal testing metrics are not yet in place during the development of an algorithm. However in a mature software system the previous version of the software is a trustworthy comparison point. Furthermore in the case of synthesis the correctness problem is well-defined. Section 2 of this paper provides further background and outlines some existing approaches. Section 3 introduces our method for solving the problem, and how the resulting tool RVEC fits into the verification flow. Section 4 shows some empirical results on test-coverage and error detection. Section 5 outlines issues with false positives; most are solved in our current implementation but some remain open. Section 6 describes efforts to generate particularly difficult sequential designs in concert with input vectors as an additional testing method. We conclude in Section 7.. The primary contributions of this paper are in the discussion and analysis of the overall problem as much as in the proposal of a specific algorithm. In this paper we have discussed the overall problem of synthesis verification using simulation. This included a study of the use of random-vector generation, identifying the issues and pitfalls that arise in simulation with random vectors, and with FPGA design simulation in general.. In concert with this analysis we outlined a tool, called RVEC, to intelligently generate vectors for simulation testing on large FPGA designs. This tool constructs vectors in combination with information from the synthesis tool to provide proper behavior for clocks, asynchronous signals, bi-directional pins and other special logic, and solve the problem of false positives arising from simultaneous logic transitions and partially solve the problem on latches which occur on these designs. The purpose of RVEC is to allow testing on large industrial designs that do not already have test-vectors.. To further exercise specific constructs seen in synthesis, we described an additional tool, VERGEN, which outputs both large Verilog designs and vectors to test them. VERGEN is intended to exercise corner cases in synthesis by connecting together common building blocks. Though not described in detail, the circuit-generation provided by VERGEN is also a strong step forward in the automatic generation of synthetic test designs.. Through various statistical means, we showed the validity of these tools to help the testing process. With RVEC we were able to show that an error in a synthesis tool only needs to appear a single time in about 10% of netlists to have a high probability of being caught automatically. With designs from VERGEN this probability is significantly higher, because we control both the design and vector generation processes.. We should emphasize that these methods and tools are additive to standard software testing methodologies (e.g. hand design of regression tests, code reviews, assertions and self-checking code) and testing designs with human-generated vectors, plus other tools not described. They provide additional confidence in the quality of synthesis results as black-box tests, and provide guidance on problems during the debug of new algorithms. We would not recommend using any one tool as the only testing mechanism on a complicated software system.. We have successfully applied these tools and others for debugging and testing Quartus native synthesis (QNS) vs. MAX+PLUS II, QNS across releases and for new synthesis algorithms, and in particular for debugging some of the more difficult algorithms such as observability don't-care minimization and register retiming. Others at Altera have used them for debugging and testing advanced algorithms in place&route that manipulate LUTmasks, perform register re-timing, or otherwise modify the connectivity of the netlist. There are a number of existing approaches for testing digital logic that are related to this problem. These include the standard ATPG testability theory, formal verification, and random vector generation. The algorithm for generating the random vectors involves manipulating a hashtable with each vector's time as the key. Below we explain the terminology and the procedure for obtaining the vectors.. A vector is defined to be a set of values for each input signal in the design at a discrete point in time. This example specifies that, at time 102.5 in the simulation, the three input pins change to 0, 0, and 1, respectively, independent of their previous values. The above three procedures are repeated for each cycle to obtain the whole simulation stimulus file. In the interest of saving space we skip some details having to do with how one ensures that only one signal changes at a time and that there is continuity in the vectors-i.e. no undefined values exist, etc. Those details are implementation specific and not difficult to work out.. The above algorithm produces vectors that have no two signals switching at the same time. This is very important for preventing false failures during verification. See Section 5 for more detail on why signals cannot change simultaneously.

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


Untangling the Web of E-Research: Towards a Sociology of Online Knowledge Abstract (168 words) e-Research is a rapidly growing research area, both in terms of publications and in terms of funding. In this article we argue that it is necessary to reconceptualize the ways in which we seek to measure and understand e-Research by developing a sociology of knowledge based on our understanding of how science has been transformed historically and shifted into online forms. Next, we report data which allows the examination of e-Research through a variety of traces in order to begin to understand how the knowledge in the realm of e-Research has been and is being constructed. These data indicate that e-Research has had a variable impact in different fields of research. We argue that only an overall account of the scale and scope of eResearch within and between different fields makes it possible to identify the organizational coherence and diffuseness of e-Research in terms of its socio-technical networks, and thus to identify the contributions of e-Research to various research fronts in the online production of knowledge. This study is ongoing, as we collect additional data to help us understand the sociology of online knowledge, using e-Research as a case study. Future efforts will include additional analysis of the data reported here to include measures such as co-authorship networks and analysis of highly published and cited researchers. Examining authorship will also allow us to map more precisely the disciplinary affiliations of authors than the crude categories used within Scopus allow. We are also collecting webometric data using the same search terms we have used in the Scopus sample to find websites with these terms and build a dataset of the links between websites. This work will allow us to begin to map the global structure of online knowledge in the e-Research area. In this article, we have discussed a number of ways to view the potential transformations of science promised by e-Research. By first discussing that we must start to develop a sociology of online knowledge if we are to understand this emergent domain, we have set out the position that understanding the socio-technical nature of e-Research is more complex than simply understanding the policy and funding programmes that have been set forth within the domain. To support this contention, we have presented data aimed at beginning to map the This is a preprint of: Meyer & Schroeder. 2009 . Untangling the Web of e-Research: Towards a Sociology of Online Knowledge, Special Issue on Science of Science: Conceptualizations and Models of Science, Journal of Informetrics 3, 3, 246-260: Elsevier (doi:10.1016 /j.joi.2009 .. sociological features of this knowledge domain. At the same time, as we have seen, eResearch as a domain ranges across a number of disciplinary approaches that might analyze it -including information science, sociology of science, social studies of humanities, and studies of new media. As research increasingly moves online, within e-Research but also more broadly, the boundaries between these disciplinary approaches will need to be transcended in order to gauge the relations between fields and to map and identify the movements of the research fronts by means of online research tools, as the other contributions to this special issue do. This will not yield a complete picture, however, as these contributions also recognize: among the missing puzzle piece are structural characteristics such as the gatekeeping functions of search engines in shaping access to online research, the ways in which the publishing industry and publishing methods shape the balance between online and offline research resources, funding policies towards different e-Infrastructures, and the extent to which fields and disciplines use research technologies -tools, data and resources -with material that can be digitized.. The shaping of the online realm of knowledge has implications for the interpretation of Popper's notion of the visibility of research, as well as for potential Kuhnian paradigm shifts within certain fields. Whatever the differences between disciplines and fields, however, any sociology of online knowledge must recognize that research technologies are increasingly organized across institutional and disciplinary boundaries. The visibility and advance of the outputs of knowledge, apart from how it can be quantitatively measured, is also shaped by how these technologies provide a conduit for knowledge which can be analyzed as a separate online whole, even if there are continuities between online and offline knowledge.. The data in this article show that e-Research has taken hold in different fields of research to quite variable degrees. Much of this data suggests considerable future work to extend our understanding of this emergent domain, particularly research that combines quantitative and qualitative data. Neither purely quantitative nor qualitative approaches can do justice to eResearch for two reasons: one is that different sources of data need to be combined in order to obtain a middle-range and comprehensive understanding of the different levels of sociotechnical networks involved. The second reason is that only an overall account of the scale and scope of e-Research within and between different fields makes it possible to identify the organizational coherence and diffuseness of e-Research in terms of its socio-technical networks, and thus to identify the contributions of e-Research to various research fronts in the online production of knowledge.. On the basis of what has been argued, we would expect the largest concentration of projects and the bulk of e-Research funding or resources to concentrate in those fields where the data deluge as conceptualized here (as mutually dependent communication) must be addressed as a matter of urgency. In certain fields more than others, there are bottlenecks in manipulating and organizing vast amounts of data and other materials by means of tools (Meyer, forthcoming) . In other fields, such as the humanities, technological and organization interdependencies can be created even without these urgent needs or need for mutually dependent scholarship. How these research technologies form lasting network cores in knowledge production -and are able to build on and maintain them -is a further question which we have begun to answer, but which will need to be followed over the longer term.. What we can see already in the data is the emergence of concentrations of projects in certain disciplines -or rather in combinations of disciplines where computer science, which provides This is a preprint of: Meyer & Schroeder. 2009 Science, Journal of Informetrics 3, 3, 246-260: Elsevier (doi:10.1016 /j.joi.2009 .. the research technologies, is connected to domain disciplines. We can also see higher levels of collaborative work around the use of research technologies across certain disciplines and fields as well as in higher levels of the use of shared computing power. If we come back now to the idea that objective knowledge is externalized and made visible around particular networks in technologically hardened cores with higher levels of task certainty and mutual dependence, we can see that these cores of research technologies -whether in the form of larger infrastructures or in projects that are not infrastructures in supporting whole communities of researchers but consist of smaller-scale socio-technical networks -these are more prominent in some disciplines and fields rather than others. How the technologies of eResearch will congeal still further and, if not revolutionize knowledge production then at least transform it and lead the edge of research in certain disciplines in new directions, remains to be seen. But certain network crystallizations are becoming visible already.. The approach here integrates data from a variety of sources and combines ideas about how knowledge changes with a sociological understanding of the material bases of these changes, via technological and socio-organizational networks. We have argued that only such a combination of sources and understanding of socio-technical networks can give an indication of the overall as well as the specific disciplinary directions of knowledge production in-themaking. Put differently, the sociology of knowledge needs to be based on the material organization of research technologies, which, in the case of e-Research, consists of an emerging landscape of socio-technical networks, the contours of which we have begun to sketch. The data reported here represent a lens through which we can start to see the patterns that are developing around e-Research in a variety of settings. Starting with the Scopus sample of articles on the general topic of e-Research (including a variety of associated search terms) we see a number of patterns that illustrate the development of publications in this area, disciplinary differences engaged in e-Research, and the language used in the titles of articles on this topic. We also include data from the National Science Foundation, partly discussed above but also included below to compare the language used in titles of grant proposals to those used in research outputs.

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


A Classification and Survey of Preference Handling Approaches in Nonmonotonic Reasoning In recent years, there has been a large amount of disparate work concerning the representation and reasoning with qualitative preferential information by means of approaches to nonmonotonic reasoning. Given the variety of underlying systems, assumptions, motivations, and intuitions, it is difficult to compare or relate one approach with another. Here, we present an overview and classification for approaches to dealing with preference. A set of criteria for classifying approaches is given, followed by a set of desiderata that an approach might be expected to satisfy. A comprehensive set of approaches is subsequently given and classified with respect to these sets of underlying principles. The notion of preference is pervasive in commonsense reasoning, in part because preferences constitute a very natural and effective way of resolving indeterminate situations. In decision making, for example, one may have various desiderata, not all of which can be simultaneously satisfied; in such a situation, preferences among desiderata may allow one to come to an appropriate compromise solution. In legal reasoning, laws may conflict. Conflicts may be resolved by principles such as ruling that newer laws will have priority over less recent ones, and laws of a higher authority will have priority over laws of a lower authority. For a conflict among these principles, one may further decide that the "authority" preference takes priority over the "recency" preference.. Preference has a decidedly nonmonotonic flavour. Or, more accurately, it may be considered as having a fundamental nonmonotonic aspect. Given a preference ordering, however constituted, and some basic or case-specific information, Ψ, one may come up with a set of desired outcomes. However, a superset of this case-specific information, Ψ ∪ Φ, may lead to a different set of desired outcomes. For example, imagine feeding information into an automated financial advisor: that one is a relatively cautious investor, that one has a long-term horizon, etc. Given these preferences, a set of recommended mutual funds may be suggested by the automated advisor. If the user subsequently states that they also prefer that their funds invest in environmentally and socially responsible companies, then a different set of suggestions may well result.. In logic-based AI, a standard approach to handling preferences is to take an existing system of nonmonotonic reasoning and, in one fashion or another, equip it with preferences. For example, preferences are added in such a manner to default logic [ Brewka,1994; Delgrande and Schaub,2000a ] , autoepistemic logic [ Konolige,1988; Rintanen,1994 ] , circumscription [ McCarthy,1986; Lifschitz,1985 ] , and logic programming [ Zhang and Foo,1997a; Brewka and Eiter,1999 ] . However, although the notion of "preference" is intuitively straightforward, there is a surprising variety in how this notion is realised in various approaches. Thus, some approaches take a preference ordering as expressing a "desirability" that a property be adopted while in others the ordering expresses the order in which properties (or whatever) are to be considered. As we later describe, some approaches conflate the notion of inheritance of properties with the general notion of preference. The outcome of course is that, depending on how the notion of preference is interpreted, different conclusions may be forthcoming. At the same time, while logical preference handling already constitutes an indispensable means for legal reasoning systems (cf. [ Gordon,1993; Prakken,1997b ] ), it is also being used in other application areas such as intelligent agents and e-commerce [ Grosof,1999 ] , and the resolution of grammatical ambiguities [ Cui and Swift,2001 ] .. In this paper, we survey various approaches to handling qualitative preference information that have appeared in the literature. The intent is to consider ways in which the general notion of preference may be interpreted in a system, and to classify and evaluate approaches based on certain criteria. We begin, in the next section, by considering a possible classification of preference approaches. As well, we discuss a number of desiderata that an approach or system may be expected to satisfy. In the following section, we compare and contrast extant systems with respect to these criteria, concentrating on points of interest illustrated by a particular approach. An appendix contains a comprehensive survey of individual approaches. We have presented an overview and classification of approaches to dealing with preference in nonmonotonic reasoning. A set of criteria for classifying approaches is first given, followed by a set of desiderata that an approach might be expected to satisfy. A comprehensive set of approaches is subsequently given and classified in Appendix A with respect to these sets of principles. The intent is to provide some structure on the area, so that seemingly unrelated systems may be compared or related with each other. Host system: classical logic (ordered theory presentations)

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