Mobile arm for disabled people assistance Manipulability measure for redundancy solve The addition of a mobile platform to a Tele-operation covers a large spectrum of situations. In all these situations, a human operator pilots a distant machine through an adequate interface. In the field of disabled people assistance, the objective of this work is to give to disabled operators the possibility to pilot a mobile arm which is a manipulator arm mounted on a mobile base. Main missions are "go and take back an object" and "manipulate an object". The spot of this paper is to exploit redundancy of the system to maximise the manipulability of the arm and, if possible, to minimise the energy necessary to reach the goal fixed by the user. This last criterion is based on human strategies studied for the same kind of tasks. Several measures of manipulability have been compared, taking into account the arm alone or the global system. Several of them come from literature. In the case of the global system, a new criterion has been proposed in order to give an equal weight to both manipulator arm and mobile base. With regard to the arm alone, all three criteria provide information on the arm capacity to move, depending on its extension.. However w 2 and w 5 are very similar in their form and do not provide additional information about manipulability. With regard to the global system the most interesting result, based on w and w 5 criteria, comes from the normalisation proposed. In the case of w 5 , the normalised version of the criterion permits to have a good appreciation of the movement capacity of the arm while w 5 can not.. Neither w nor its normalised version provide this information.. Manipulability criteria have also been used to control the system. In that case, a comparison has been made between command using criteria minimisation and command without minimisation, the latter is taken as reference. The main result is that using the normalised version of the criterion w 5 , acceleration variations decrease and trajectories become smoother so expenditure of energy is reduced. This can be shown by analysing the trajectory followed by the mobile platform. w and w 5 provide trajectories with two graining points and w 5 provides a trajectory with only one graining point. Results presented here show that our criterion permits to have a satisfying control of the global system, taking into account manipulability and energy. Present works try to improve the criterion taking into account the task to be realised. Indeed, manipulability giving information on the capacity of the system to move, the idea is to measure this capacity taking into account the privileged direction of the task. This will permit to obtain a more precise criterion and to elaborate a better command of the system. Completely extended configuration of the arm corresponds to a singular configuration. Whatever, the manipulability measure used shows it.. Manipulability indices w 2 and w 5 are more qualitative measures which provide the same information, but they evolve conversely. Indeed w 5 tends towards one for singular configurations whereas w 2 tends towards zero. In the following we will present only the two indices w and w 5 .. The first axis of the arm manipulator does not possess joint limit, what permits to impose the same task in different direction of the operational space. Figure 6 represents the shape the manipulability measures w and w 5 in the operational space when the x a3 is equal to zero. It shows that the manipulability of the manipulator arm does not depend on the orientation the first joint of the arm.. Thus, for a given configuration (q a2 , q a3 ) of the arm, manipulation abilities are the same whatever direction of the operational space. . The purpose of this study is to exploit the redundancy generated by association of the manipulator arm and the mobile platform in order to put the manipulator arm in good configurations from manipulation point of view and to reduce energy consumption during the task execution i.e. to have smooth movements. The measure used to characterise arm manipulation ability is w a5 . In our case, arm manipulation ability is satisfying when w a5 <0.9. For energy consumption, the idea is to reduce strong acceleration variations by limiting platform manoeuvres number. The number of trajectory grainings is a good indicator.. Pseudo inverse is a particular solution which gives the minimum velocities of the system to execute the operational task. Whatever the task, arm configurations obtained by this solution (figure 9 and 13) are not optimized from manipulation ability point of view. Platform trajectories are not constrained by arm configurations but only depend on the task to be carried. So, we have introduced criterion optimization for controlling the system.. To guaranty the first objective, arm manipulability measure w a5 is optimized for controlling the whole system. By construction, the arm adopts configurations well-adapted to manipulation tasks. Platform trajectory is smooth in the case of following a straight line along platform displacement (case1, figure 10 ), whereas two changes of direction (graining points) appear in following a straight line perpendicular to platform displacement (case2, figure 14) . The use of the global

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


Optimal-Location-Selection Query Processing in Spatial Databases Abstract-This paper introduces and solves a novel type of spatial queries, namely, Optimal-Location-Selection (OLS) search, which has many applications in real life. Given a data object set D A , a target object set D B , a spatial region R, and a critical distance d c in a multidimensional space, an OLS query retrieves those target objects in D B that are outside R but have maximal optimality. Here, the optimality of a target object b 2 D B located outside R is defined as the number of the data objects from D A that are inside R and meanwhile have their distances to b not exceeding d c . When there is a tie, the accumulated distance from the data objects to b serves as the tie breaker, and the one with smaller distance has the better optimality. In this paper, we present the optimality metric, formalize the OLS query, and propose several algorithms for processing OLS queries efficiently. A comprehensive experimental evaluation has been conducted using both real and synthetic data sets to demonstrate the efficiency and effectiveness of the proposed algorithms. In this paper, we introduce and solve a new form of spatial queries, namely, OLS search. It takes a data object set D A , a target object set D B , a critical distance d c , and a spatial region R as inputs, and returns those target objects outside R with maximal optimality. We develop the optimality metric, formalize the OLS query and its generalization (i.e., k-OLS query), and propose three algorithms, including TS, RB, and RRB, for efficient k-OLS query processing. Finally, a comprehensive empirical study using both real and synthetic data sets has been conducted to verify the performance of our proposed algorithms in terms of efficiency and effectiveness.. The work reported in this paper presents our first step with respect to OLS queries. There are certain limitations. First, in the current work, we only consider an euclidian space and we plan to extend our methods to other distance metrics (e.g., network distance in road networks). Second, the current algorithms are designed to mainly reduce the I/O cost via traversing the data object set and target object set only once. However, it is also important to improve the CPU time. Hence, our next step is to design the algorithms that can improve both CPU time and I/O cost. Third, the current algorithms are k-insensitive as they have to evaluate all the candidate target objects with nonzero optimality no matter how large the k is. We are currently working on the incremental algorithms which can terminate the evaluation once the k target objects with maximal optimality are identified. In addition, we are also interested in developing a cost model to estimate the execution time of different OLS query processing algorithms, which can facilitate query optimization and reveal new problem characteristics that could lead to even faster algorithms. . For more information on this or any other computing topic, please visit our Digital Library at www.computer.org/publications/dlib. Compared with the baseline algorithm mentioned in Section 1.3, TS, RB, and RRB algorithms improve the search performance by reducing the traversal of D A /D B to only once, but via different approaches. Assume that C A represents the data object candidate set which includes all the data objects that may contribute to the optimality of some target objects, C B denotes the target object candidate set which contains all the target objects that may have nonzero optimality, R A represents the real data object set which includes all the data objects that do contribute to the optimality of some target objects, and R B denotes the real target object set which contains all the target objects that do have nonzero optimality. To be more specific, C A ¼ fa 2 D A ja 2 Rg; C B ¼ fb 2 D B jb 6 2 R^mindistðb; RÞ d c g; R A ¼ fa 2 D A j9b 2 C B ; a 2 S b g, and R B ¼ fb 2 C B jS b 6 ¼ ;g. TS makes a conservative assumption that C A % R A and C B % R B . Therefore, it fetches C A (C B ) via traversing D A (D B ) once. On the other hand, (C A À R A )/(C B À R B ) might be significant. RB assumes that C A is larger than R A and it tries to save the access of those data objects included in ðC A À R A Þ, while RRB assumes that C B is larger than R B and it tries to save the access of those target objects contained in ðC B À R B Þ. Consequently, TS favors the case where ðjC A j À jR A jÞ and ðjC B j À jR B jÞ are ignorable, RB favors the case where ðjC A j À jR A jÞ ) ðjC B j À jR B jÞ, and RRB favors the case where ðjC A j À jR A jÞ ( ðjC B j À jR B jÞ. Over the last decade, efficient query processing for spatial data objects has received considerable attention from the database research community. Representative spatial queries include range query [26] , nearest neighbor (NN) search [5] , [17] , [33] , spatial join [4] , [21] , [27] , [28] , and closest pair query [6] , [7] , [16] . However, there are still some interesting applications involving spatial data for decision making that cannot be efficiently supported by existing spatial query processing techniques. Consider the following two example applications.. Optimal watch point selection. Bird-watching is a popular activity in Singapore. In order to further promote this activity, the National Parks Board (NPB) decides to recommend some optimal watch points, so that bird-watchers can observe clearly as many bird species as possible at those recommended watch points. Let R be a bird habitat for birdwatching, D A be a set of the locations l i within R such that certain bird species normally appear, d c be the maximal distance of the objects that can be viewed clearly through binoculars, and D B be a set of potential watch points p j outside R (i.e., 8p j 2 D B ; p j 6 2 R). Obviously, the more the bird species that can be observed clearly at one watch point, the better the watch point is. Hence, the optimality of a watch point p j 6 2 R can be quantified by jfl i jl i 2 D Al i 2 R^distðl i ; p j Þ d c gj, where, without loss of generality, distðx; yÞ is a distance function that computes the euclidean distance between any two objects x and y, and jSj is the cardinality of a set S.. Optimal lifeguard station selection. To ensure public safety, a limited number of lifeguards have to be strategically stationed on some of the busiest ocean beaches in the world. Locations of lifeguard stations should be close to as many accident-prone areas as possible. Let R be the water region which lifeguards are responsible for, D A be a set of accidentprone regions r i 2 R within an ocean beach, d c be the maximum response time allowed, and D B be a set of potential lifeguard locations l j located outside R (i.e., 8l j 2 D B ; l j 6 2 R). Then, the optimality of a lifeguard station location l j can be qualified by jfr i jr i 2 D A^ri 2 R^d istðr i ;l j Þ v d c gj, in which v denotes the average running velocity of lifeguards. In this section, we first briefly overview the R-tree and algorithms for range and NN queries, and then, review NN query variants and distance join queries. We have used both real and synthetic data sets in the experiments and fix each dimension of the search space to [0, 10,000]. Four real data sets are deployed with cardinality varying from 9,203 to 191,558, as summarized in Table 2 . LB and CA data sets (available at http://www.census.gov/ geo/www/tiger.) contain populated places and cultural landmarks, in the format of 2D point locations, in Long Beach and California, respectively. On the other hand, CL and RS data sets (available at http://www.maproom. psu.edu/dcw) represent two different layers of North America's map, with CL corresponding to cultural landmarks in the format of 2D points, and RS corresponding to railroad segments in the format of 2D segments. Although our proposed algorithms can be naturally extended to handle objects with extents, we only use point data sets in this evaluation. Consequently, we transfer RS data set into point data set by taking the middle point of each segment. Fig. 7 illustrates these four real data sets. We have also created several synthetic data sets with dimensionality varying in the range of [2, 5] and cardinality varying between 50,000 and 450,000, following uniform and zipf distributions. The coordinates of each point in a Uniform data set are generated randomly within [0, 10,000], whereas for a Zipf data set, the coordinates follow a zipf distribution with a skew coefficient set to 0.8. In both cases, a point's coordinates on various dimensions are mutually independent.. Every data set is indexed by R Ã -tree [1] with 4,096 bytes page size. We investigate the performance of our proposed algorithms under various parameters, including the number k of required answer objects for an OLS query, the critical distance d c , the size of the spatial region R, the dimensionality dim of the search space, the cardinality n of the data sets, and the buffer size bs, as presented in Table 3 . In each experiment, only one parameter varies, while the others are fixed at their default values. Note that the lower left point of the spatial range R in the experiments is randomly selected from the set of data points, and all of its edges have the same length.. The I/O cost and the query cost are employed as the major performance metrics. The former is the number of page/node accesses, while the latter is the average response time of an OLS query. Here, each page access takes 10 ms, as in [39] , and the query cost is the summation of the average I/O time and CPU time incurred to complete one query. Each reported value in the following diagrams is the average performance of 100 queries. Unless specifically stated, the size of LRU buffer is set to zero in the experiments.

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


A systematic approach for soft sensor development This paper presents a systematic approach for development of a data-driven soft sensor using robust statistical technique. Data preprocessing procedures are described in detail. First, a template is defined based on a key process variable to handle missing data related to severe operation interruption. Second, a univariate, followed by a multivariate principal component analysis (PCA) approach, is used to detecting outlying observations. Then, robust regression techniques are employed to derive an inferential model. The proposed methodology is applied to a cement kiln system for realtime estimation of free lime, demonstrating improved performance over a standard multivariate approach. Soft sensors have been developed as supplement to online instrument measurements for process monitoring and control. Early work on soft sensor development assumed that a process model was available. The inferential model is developed using Kalman filter (Joseph and Brosilow, 1978) . In case the process mechanisms are not well understood, empirical models, such as neural networks (Qin and McAvoy, 1992; Radhakrishnan and Mohamed, 2000) , multivariate statistical methods may be used to derive the regression model (Kresta et al., 1994; Park and Han, 2000; Zhao, 2003) . A model-based soft sensor can be derived if a first principle model (FPM) describes the process sufficiently accurately. However, modern measurement techniques enable a large amount of operating data to be collected and stored, thereby rendering data-driven soft sensor development a viable alternative. Multivariate regression techniques have been extensively employed to develop datadriven soft sensors. Principal component regression (PCR) and partial least squares (PLS) address collinearity issues of process data by projecting the original process variables into a smaller number of orthogonal latent variables. Process measurements are often contaminated with data points that deviate significantly from the real values due to human errors, instrument failure or changes of operating conditions. Since outlying observations may seriously bias a regression model, robust statistical approaches have been developed to provide a reliable model in the presence of abnormal observations. This paper presents a systematic approach for building a soft sensor. The proposed method using robust statistical techniques is applied to the estimation of free lime for cement kilns. The paper is organized as follows. Section 2 describes data preprocessing which includes both univariate and multivariate approaches to detect outlying observations. The robust PCR and PLS approaches are presented in section 3, followed by the illustrative application on development of a free lime soft sensor for a cement kiln. This paper presents a systematic approach to build a soft sensor using robust statistical approaches. The proposed methodology is applied to predict free lime of cement kiln systems. Due to the low signal-to-noise ratio in operating data, data preprocessing demonstrates to be an essential step for development of a data-drive soft sensor. A case study demonstrates the improved performance of a robust PCA model for the detection outliers. The real-time estimation of free lime can be obtained with the datadriven soft sensor, which shows some potential to be used in closed loop control. Due to contamination of process measurements in operating data, downweighting outlying observations is beneficial to enhance the predictability of a regression model. The case study indicates the existence of a optimal downweighting vector determined by the significance level of Q-and T 2 -statistics. The issue of finding the optimal significance levels for regression model development and integrating the information from irregularly-sampled low quality measurements into the weighting vector need 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


Identifier

length

and

limited

programmer

memory

Because

early

variable

mnemonics

were

limited

to

as

few

as

six

to

eight

characters,

many

early

programmers

abbreviated

concepts

in

their

variable

names.

The

past

thirty

years

have

seen

a

steady

increase

in

permitted

name

length

and,

slowly,

an

increase

in

the

actual

identifier

length.

However,

in

theory

names

can

be

too

long

for

programmers

to

comprehend

and

manipulate

effectively.

Most

obviously,

in

objectoriented

programs,

entity

naming

often

involves

chaining

of

method

calls

and

field

selectors

(e.g.,

class.firstAssignment().name.trim()).

While

longer

names

bring

the

potential

for

better

comprehension

through

more

embedded

sub-words,

there

are

practical

limits

to

their

length

given

limited

human

memory

resources.The

driving

hypothesis

behind

the

presented

study

is

that

names

used

in

modern

programs

have

reached

this

limit.

Thus,

a

goal

of

the

study

is

to

better

understand

the

balance

between

longer,

more

expressive

names

and

limited

programmer

memory

resources.

Statistical

models

derived

from

an

experiment

involving

programmers

of

varying

degrees

of

experience

show

that

longer

names

extracted

from

production

code

take

more

time

to

process

and

reduce

correctness

in

a

simple

recall

activity.

This

has

clear

negative

implications

for

any

attempt

to

read,

and

hence

comprehend

or

manipulate,

the

source

code

found

in

modern

software.

The

experiment

also

evaluates

the

advantage

of

identifiers

having

probable

ties

to

a

programmer's

persistent

memory.

Combined,

these

results

reinforce

past

proposals

advocating

the

use

of

limited,

consistent,

and

regular

vocabulary

in

identifier

names.

In

particular,

good

naming

limits

individual

name

length

and

reduces

the

need

for

specialized

vocabulary.

Early

compilers

limited

identifier

length

starting

a

long

tradition

of

abbreviation

Modern

programming

languages

have

forgone

such

limits;

thus,

programmers

have

been

encouraged

to

replace

abbreviations,

such

as

mnelmns,

with

ever

longer

names,

such

as

or

even

However,

a

name

can

become

too

long.

Consider

trying

to

work

with

the_maximum_number_of_elements_seen_in_the_input

even

given

an

IDE

that

performs

name

completion..

The

effective

removal

of

length

limitations

provides

programmers

with

considerable

freedom

to

select

names

that

promote

source

code

understanding.

With

this

freedom

comes

responsibility.

For

example,

Liblit

et

al.

observe

that

longer

names,

with

more

embedded

sub-words,

are

more

informative

Furthermore,

Lawrie

et

al.

note

that

longer

identifier

names

provide

insight

into

the

code's

meaning

Yet,

there

is

a

practical

limit

to

the

length

of

identifiers,

just

as

there

is

with

the

length

of

words

in

natural

language.

Jones

observes

that

few

developers

appreciate

how

small

short-term

memory

actually

is,

having

the

capacity

to

hold

only

information

on

a

few

statements

at

most

Thus,

overloading

a

programmer's

short-term

memory

is

rather

easy.

One

way

to

improve

its

capacity

is

by

constructing

identifiers

from

words

that

include

ties

to

programmer

persistent

memory.

This

paper

presents

results

from

a

study

of

the

interplay

between

programmer

short-term

memory

limitations

and

entity

names

found

within

programs.

The

study

is

part

of

ongoing

research

into

the

impact

that

limited

human

memory

resources

have

on

program

comprehension.

While

program

comprehension

clearly

involves

more

than

simple

recall,

such

recall

forms

a

fundamental

and

necessary

precursor

to

essentially

all

comprehension

activities.

Thus,

higher-level

comprehension

activities

become

increasingly

difficult

as

a

programmer's

short-term

memory

becomes

overcrowded,

particularly

when

those

activities

require

access

to

crowded-out

information.

It

is

important

to

separate

this

observation

from

the

observation

that

low

recall

is

a

sign

of

poor

comprehension.

Only

the

former

is

investigated

by

the

experiment..

In

contrast

to

trends

in

modern

programming

languages,

the

hypothesis

that

motivates

this

study

is

that

identifiers

can

be

too

long

and

thus

negatively

impact

recall

and

consequently

comprehension.

While

the

existence

of

a

theoretic

limit

is

obvious,

the

study

suggests

that

this

limit

has,

in

fact,

been

reached.

The

resulting

degradation

can

be

observed,

for

example,

as

a

reduced

ability

to

recall

particular

parts

of

the

code

caused

by

overcrowding

of

short-term

memory.

This

is

particularly

an

issue

in

object-oriented

programming

where

'chaining'

often

leads

to

long

names

created

when

several

method

calls

and

field

selectors

are

concatenated

together

in

a

chain

expression

(e.g.,

name.trim().length()).

Informally,

Jones

notes

this

effect

in

the

observation

''experience

shows

that

developers

sometimes

read

source

code

so

quickly

that

visually

similar,

but

different,

identifiers

are

treated

as

being

the

same

identifier

Maximal

comprehension

occurs

when

the

pressure

to

create

longer

more

expressive

names

is

balanced

against

limited

programmer

short-term

memory

resources.

Finding

this

balance

point

will

result

in

better

guidance

for

creating

easyto-comprehend

names.

To

this

end,

results

from

a

study

on

the

impact

of

name

length

and

persistent-memory

ties

are

presented.

An

important

part

of

the

study's

construction

is

the

use

of

production

code

as

a

source

for

the

chain

expressions

(names).

This

means

that

the

results

are

more

apt

to

apply

to

existing

rather

than

hypothetical

programs.

However,

the

study

considers

isolated

names;

therefore,

it

tends

to

underestimate

the

demand

on

programmer

memory

because

there

is

no

need

to

remember

surrounding

code..

A

programmer's

ability

to

quickly

read

(visually

process

an

identifier's

text)

and

to

associate

it

with

a

concept

forms

a

fundamental

step

in

most

program

comprehension

activities.

Excessive

length

can

get

in

the

way

of

both

of

these

processes.

For

example,

compare

the

ease

of

comprehension

between

the

statements

and

dist

sqrt(dx

dx

dy

dy).

While

program

comprehension

is

more

than

simple

reading

and

recall,

these

two

steps

are

at

the

core

of

many

program

comprehension

activities.

This

problem

is

exacerbated

in

source

code

because

it

includes

an

intensive

use

of

invented

words,

unlike

natural

language

in

which

participants

share

a

large

and

mutually

understood,

but

relatively

fixed

lexicon..

The

remainder

of

the

paper

first

presents

some

necessary

background

information

in

Section

before

describing

the

experiment's

design,

the

five

hypotheses

considered,

and

the

results

in

Sections

respectively.

This

is

followed

by

a

discussion

of

related

work

in

Section

Finally,

Sections

and

suggest

some

future

work

and

finally

summarize

the

paper.

This

paper

reports

on

an

experiment

using

single

lines

of

production

code.

It

thus

builds

on

similar

past

experiments,

most

notably

that

of

Jones

who

use

artificial

code

and

Lawrie

et

al

who

artificially

manipulated

the

identifiers

in

production

code.

The

next

step

in

this

direct

line

will

use

the

experience

obtained

from

conducting

this

experiment

to

consider

increasingly

realistic

environments.

While

considerably

more

complex

to

set

up

and

administer,

the

next

experiment

will

consider

larger

syntactic

units

(e.g.,

individual

methods)

extracted

from

production

code..

To

help

plan

such

a

study,

a

prototype

was

recently

conducted

using

an

applet

over

the

internet.

It

involved

participants.

While

a

smaller

group,

the

demographic

breakdown

of

the

is

essentially

the

same

as

the

study

reported

on

in

this

paper..

The

task

involved

debugging

one

of

three

versions

of

a

function.

The

versions

differ

only

in

the

length

of

their

identifiers:

short

(abbreviated),

full

word,

and

phrase

(artificially

long

identifiers).

The

full-word

variant

is

shown

in

Fig.

from

which

the

level

of

complexity

in

the

task

can

be

gauged.

This

preliminary

version

required

the

creation

of

two

alternate

versions

Fig.

An

example

problem

from

the

pilot

function

debugging

study.

Participants

were

shown

one

of

three

version

of

the

code:

one

using

abbreviations,

one

using

full

words

(shown

here),

and

one

using

elongated

phrases.

In

this

example

the

assignment

in

the

for

loop

should

read

newBalance

(newBalance*appliedInterestRate).

of

each

function.

This

allows

control

on

the

complexity

and

the

differences

between

the

versions

and

focuses

the

difference

on

the

identifiers.

Fig.

summarizes

data

collected

from

the

preliminary

study.

Here

the

y-axis

shows

time

in

seconds

on

the

debugging

exercise

and

the

x-axis

shows

the

three

variants.

Each

line

represents

a

level

of

subject

experience

from

(low)

to

(high).

Two

trends

are

evident

from

the

graph..

First,

from

words

to

artificially

long

phrases

all

five

different

experience

levels

show

an

increase

in

time

taken;

thus,

reinforcing

the

notion

that,

at

least

when

debugging,

names

can

be

too

long.

It

is

interesting

to

note

that

the

impact

is

less

pronounced

for

the

least

experienced

(the

slope

of

the

top

line

is

lower).

Further

study

is

needed

to

understand

this

affect.

The

second,

and

far

more

interesting,

observation

comes

from

the

trend

between

the

abbreviated

names

and

those

constructed

from

full

words.

Here

there

appears

to

be

an

interaction

between

length

and

experience

with

length

aiding

experienced

programmers

(experience

levels

and

shows

a

reduction

in

time

taken

to

perform

the

debugging

task).

However,

increased

length

hurt

inexperienced

programmers.

Further

study

of

this

affect

is

warranted..

Presentation

and

discussion

of

the

study

from

Section

has

often

led

to

a

discussion

concerning

the

impact

of

camelCasing

on

program

comprehension.

Thus

a

follow

up

study

comparing

the

comprehension

correctness

and

speed

using

camelCasing

(asInJava)

and

underscores

is

planned.

Researchers

who

study

the

reading

of

natural

language,

observe

that

identifiers

constructed

using

camelCasing

would

be

read

as

one

long

word,

but

the

use

of

underscores

would

be

read

more

quickly

as

two

words

(e.g.,

compare

polarPoint

with

This

raises

the

question:

will

this

hold

true

for

programmers

or

can

programmers

be

trained

to

read

camelCasing

as

quickly

as

multiple

words?.

Finally,

persistent

memory

has

two

dominant

modes:

spatial

and

sequential.

Spatial

recall

is

limited

to

approximately

entities;

thus,

for

example,

limiting

the

size

and

complexity

of

useful

UML

diagrams.

In

contrast,

much

larger

(longer)

material

can

be

stored

in

sequential

memory

(e.g.,

the

words

or

notes

of

a

song

or

blocks

of

source

code).

Finding

an

appropriate

mix

of

these

two

and

exploiting

it

in

comprehension

activities

represent

more

distant

future

research.

The

study

described

in

this

paper

shows

that

names

used

in

existing

production

code

are

long

enough

to

crowd

programmer's

short-term

memory.

This

provides

evidence

that

software

engineers

need

to

consider

shorter,

more

concise

names

As

the

study

considers

individual

names

extracted

from

production

code,

it

tends

to

underestimate

the

demand

on

memory

because

there

is

no

need

to

remember

context

as

well.

At

a

minimum

this

study

shows

that

results

from

general

reading

comprehension

apply

to

programmers

reading

code.

More

generally,

the

study

extends

prior

results

from

a

highly

controlled

setting

to

a

less

controlled

setting

that,

by

using

production

code,

more

accurately

reflects

programmer

behavior.

Related

work

comes

on

two

'sides'

of

this

study:

at

a

'lower'

level

there

is

research

on

human

memory

and

cognition

and

at

a

'higher'

level

there

is

research

on

the

impact

of

naming

on

programmer

comprehension.

To

begin

with,

New

et

al.

study

the

impact

of

word

length

on

lexical

decision

latencies

The

study

considered

words

that

range

from

letters

to

letters,

which,

unlike

its

predecessors,

represents

the

entire

range

of

normally

encountered

English

word

lengths.

They

found

that

the

number

of

syllables,

letters,

and,

orthographic

neighbors,

each

made

significant

independent

contribution

toward

lexical

decision

latencies.

For

example,

each

syllable

added

ms

to

the

time

needed

to

recognize

a

word.

In

comparison,

subjects

in

this

study

were

not

simply

reading,

but

studying

code;

thus,

it

is

unsurprising

that

each

syllable

added

s

ms)

to

the

study

time..

In

terms

of

letters,

the

analysis

revealed

an

unexpected

U-shaped

curve

-decision

latencies

were

greater

for

short

and

long

words:

word

length

was

facilitatory

from

letters,

from

letters,

and

inhibitory

from

letters.

This

pattern

existed

even

within

the

bisyllabic

words;

thus,

the

U-shaped

curve

is

not

a

confound

of

the

number

of

syllables.

In

fact,

the

inhibitory

effect

of

number

of

letters

is

robust

in

that

it

is

not

a

confound

of

any

other

lexical

factors.

The

U-shaped

result

potentially

explains

the

mixed

results

of

past

studies

(twelve

summarized

studies

find

length

to

be

either

inhibitory

or

in

effect)

probably

because

these

studies

used

restricted

length

ranges..

One

explanation

offered

for

this

phenomenon

is

that

the

reading

of

words

with

a

length

of

letters

has

the

highest

chance

of

being

done

in

a

single

fixation.

Shorter

words

are

often

skipped

and

longer

words

must

be

re-fixated

as

letters

are

more

difficult

to

perceive

the

farther

they

are

from

the

fixation

point.

In

addition,

parallel

word

processing

is

observed

only

in

a

small

region

of

the

visual

field,

with

highly

skilled

readers,

and

with

a

familiar

font..

In

terms

of

lexical

decision

latencies,

most

Java

names

are

quite

long

because

camelCasing

provides

insufficient

separation

(e.g.,

the

identifier

equalsIgnoreCase

is

read

as

a

single

sixteen

letter

word).

Thus,

they

are

well

into

the

inhibitory

range

in

terms

of

decision

latency.

This

result

underlies

the

study

presented

herein.

It

provides

a

general

understanding

of

human

lexical

processing..

New

et

al.

conclude

that

''the

relationship

between

word

length

and

lexical

decision

times

is

less

straightforward

than

has

been

assumed''.

The

models

presented

in

Section

indicate

that

reading

of

source

code

by

programmers

is

also

less

straightforward

than

might

be

assumed..

The

second

related

experiment

considers

the

consequences

of

limited

short-term

memory

capacity

on

subjects'

performance

comprehending

short

artificial

code

sequences

This

study

provides

results

regarding

the

impact

that

different

character

sequences

have

on

the

cognitive

resources

required

during

program

comprehension.

Two

identifier

attributes

were

studied:

the

amount

of

short-term

memory

required

to

hold

an

identifier's

spoken

form

(i.e.,

the

number

of

syllables)

and

pre-existence

(i.e.,

ties

to

persistent

memory).

Thus,

identifiers

belonged

to

one

of

four

possible

sets:

a

single

character

whose

spoken

form

contained

a

single

syllable

(short,

no

ties),

an

English

word

whose

spoken

form

contained

one

syllable

(short,

ties),

three

characters

not

forming

a

word

whose

spoken

form

contained

three

syllables

(long,

no

ties),

and

a

word

whose

spoken

form

contained

three

syllables

(long,

ties)..

This

study

found

that

processing

character

sequences

is

effected

by

the

kind

of

sequence.

In

terms

of

correct

answers,

one

syllable

words

received

the

most

correct

answers.

This

corresponds

to

short

names

with

ties

to

persistent

memory.

The

worst

results

were

for

three

unrelated

letters,

which

corresponds

to

long

names

with

no

ties

to

persistent

memory

and

provides

evidence

of

the

crowding

effect.

Thus

frequently

used

character

sequences

(i.e.,

words)

are

recognized

faster

and

are

more

readily

recalled

than

rare

ones.

In

addition,

many

performance

characteristics

are

slower

and

more

error

prone

for

non-words

compared

to

words..

In

comparison,

the

study

laid

out

in

Section

is

less

artificial

in

that

the

code

came

from

production

programs

rather

than

being

constructed

to

satisfy

initial

experimental

conditions.

In

exchange,

the

experimental

conditions

are

not

as

tightly

controlled.

For

example,

the

number

of

syllables

for

long

names

varied

from

to

This

makes

the

results

harder

to

analyze

and

interpret,

but

places

the

result

closer

to

the

experience

of

programmers..

The

third

study

considers

the

work

of

Liblit

et

al.,

which

aims

to

relate

standard

programming

practice

to

modern

theories

of

human

language

and

cognition

The

authors

find

that

''programmers

use

names

in

regular,

systematic

ways

that

reflect

deep

cognitive

and

linguistic

influences.

This

allows

names

to

carry

[natural

language]

semantic

cues

that

aid

in

program

understanding

and

support

software

development.

However,

overuse

of

abbreviations

can

lead

to

a

preponderance

of

unique

symbols

programmers

must

decipher

which

may

lead

to

inhibited

understanding

Liblit

et

al.

observe,

but

do

not

study,

that

''if

names

are

informative,

then

longer

names,

with

more

embedded

sub-words,

should

be

more

informative.

Yet

there

are

practical

limits

to

the

lengths

of

names,

just

as

there

are

practical

limits

to

the

lengths

of

words

in

natural

language.

Longer

names

may

be

more

informative,

but

they

are

also

more

cumbersome

to

read''.

As

an

example,

they

present

the

two

snippets

shown

in

Fig.

that

each

calculate

Euclidean

distance.

In

one,

identifiers

have

names

such

as

and

and

in

the

other,

identifiers

have

the

more

traditional

names

such

as

dx

and

Of

the

two,

Snippet

has

the

longer

more

informative

identifiers.

In

contrast,

their

lengths

require

multiple

fixations

and

more

quickly

overcrowd

short-term

memory;

thus,

requiring

re-fixating

and

greater

concentration.

For

a

reader

familiar

with

the

abbreviations

used

in

Snippet

its

shorter

names

are

easier

to

process

as

it

requires

less

effort.

However,

imagine

reading

Snippet

without

previously

knowing

the

Euclidean

distance

formula.

Most

programmers

can

recall

this

kind

of

situation

in

which

a

fragment

of

code

was

meaningless

until

the

semantics

of

the

names

became

known..

Liblit

et

al.

conclude

that

terse

and

abbreviated

names

enhance

readability

at

the

expense

of

expressiveness.

The

results

from

Section

dampen

the

expressiveness

advantage

by

studying

the

memory

demand

of

longer

names.

Similar

to

lexical

decision

latency

studied

by

New

et

al.,

this

suggests

a

U-shaped

comprehension

result

in

which

names

that

are

too

short

inhibit

comprehension

by

failing

to

be

sufficiently

expressive,

while

those

that

are

too

long

inhibit

comprehension

by

overtaxing

programmer

short-term

memory;

thus,

the

results

from

Section

combined

with

those

of

Liblit

et

al.

extend

the

results

of

New

et

al.

to

software..

Other

researchers

have

studied

naming's

impact

on

comprehension

at

a

higher

level.

For

example,

Takang

et

al.

investigate

the

hypothesis

that

programs

with

full-word

identifiers

are

more

understandable

than

those

with

abbreviations

While

a

surprise

to

the

authors,

this

hypothesis

is

not

supported

by

the

quantitative

data

collected.

The

study

from

Section

may

shed

some

light

on

this

unexpected

result

as

the

longer

names

may

have

overcrowded

subject's

short-term

memory..

The

work

of

Deissenböck

and

Pizka

is

also

of

interest

as

it

presents

a

formal

model

based

on

bijective

mappings

between

concepts

and

names

for

adequate

identifier

naming

The

model

is

based

on

the

observation

that

''research

on

the

cognitive

processes

of

language

and

text

understanding

shows

that

it

is

the

semantics

inherent

to

words

that

determine

the

comprehension

process''.

It

includes

rules

for

the

correct

and

concise

naming

of

identifiers.

The

core

idea

is

that

within

a

given

program

a

concept

should

always

be

referred

to

by

the

same

name.

Their

goal

is

that

names

contain

enough

information

for

an

engineer

to

comprehend

the

precise

concept

involved

without

too

large

a

strain

on

short-term

memory..

The

challenge

that

the

results

from

Section

raise

for

keeping

a

one-to-one

relationship

between

names

and

concepts

comes

from

the

need

to

differentiate

concepts

normally

leading

to

longer

names.

For

example,

a

program

with

a

single

position

concept

(e.g.,

absolute

positions)

might

use

the

variable

position.

If

later

evolution

of

the

code

requires

the

concept

of

relative

positions,

then

the

names

need

to

differentiate

these

two.

In

this

case

relativePossitions

and

absolutePossitions

are

sufficient.

However,

this

is

not

a

sustainable

pattern.

For

example,

the

program

eMule

includes

the

method

name

The

length

of

this

name

highlights

an

attempt

to

capture

a

concise

concept.

However,

this

was

clearly

done

at

the

cost

of

readability

making

it

an

awkward

choice..

Next,

Laitinen

studied

the

impact

of

Natural

Naming

by

introducing

a

method

for

estimating

the

understandability

of

source

code

The

core

idea

of

this

work

is

that

every

program

has

its

own

unique

language

made

up

of

the

technical

and

textual

symbols

found

in

the

program.

Programs

contain

symbols

that

cannot

be

considered

to

belong

to

the

programming

language.

For

example,

consider

a

C

function

named

''ispdrome''.

The

symbol

''ispdrome''

does

not

belong

to

the

C

programming

language

(it

is

not

mentioned

in

the

C

standard).

Neither

can

we

say

that

the

symbol

'''ispdrome''

belongs

to

some

natural

language

(it

is

not

in

the

English

dictionary).

Source

that

avoids

unnecessary

symbols

is

considered

better..

Laitinen

treats

languages

as

sets

of

symbols

and

defines

the

understandability

of

a

program

as

proportional

to

how

understandable

the

language

it

contains

is.

This

is

inversely

proportional

to

how

complex

the

language

is.

Two

rules

are

defined

to

estimate

the

understandability

of

a

language

Rule

I:

Smaller

languages

are

usually

easier

to

understand

than

larger

languages:

the

number

of

symbols

in

a

language

affects

its

understandability..

Rule

II:

It

is

easier

to

understand

closely

related

languages

than

more

distantly

related

languages.

Thus,

a

person

who

has

mastered,

for

example,

Italian

would

find

French

easier

to

understand

than

Mandarin..

The

key

result

of

a

study

of

four

programs

showed

that

programs

using

abbreviations

have

larger

languages

that

grow

faster

as

the

program

matures.

Laitinen

concludes

that

not

allowing

unnecessary

symbols

to

enter

the

language

(e.g.,

abbreviations)

can

improve

the

programming

process

by

controlling

linguistic

complexity

during

software

development.

He

thus

advocates

avoiding

abbreviations

or

other

unnecessary

symbols

and

thus

controlling

the

linguistic

process

during

software

development.

This

section

describes

background

on

memory,

the

findings

from

two

prior

motivating

studies,

and

finally

the

statistical

techniques

used.

Memory

is

the

retention

of

information

over

time.

It

can

be

broken

down

into

three

stages:

sensory,

shortterm,

and

persistent.

Sensory

memory

retains

images,

sounds,

and

smells

for

no

more

than

a

second.

Interesting

information

enters

short-term

memory.

This

second

kind

of

memory

is

working

storage.

Short-term

memory

holds

new

information

for

about

s

without

rehearsal

(repetition)

The

capacity

of

this

subsystem

is

debatable,

but

limited.

Miller

first

enumerated

the

capacity

in

the

at

seven

plus

or

minus

two

items.

However,

more

recent

estimates

indicate

that

it

may

be

closer

to

three

plus

or

minus

one

item

One

of

the

interesting

aspects

of

short-term

memory

is

that

similar

material

can

be

combined

into

a

chunk;

this

appears

to

increase

the

total

amount

of

material

remembered.

Finally,

persistent

memory

lasts

from

minutes

to

years.

Persistent

memory

can

be

used

to

recall

previously

learned

information

including,

for

example,

specific

rules

and

repeated

patterns

such

as

those

used

in

programming..

This

study

focuses

on

the

impact

of

limited

short-term

memory

resources.

When

dealing

with

natural

language

reading,

short-term

memory

is

correlated

with

reading

comprehension.

For

example,

Table

found

in

the

Technical

Manual

for

the

Wechsler

Memory

Scale

and

Wechsler

Adult

Intelligence

Scale

reports

that

the

correlation

between

working

(shortterm)

memory

and

reading

comprehension

as

The

manual

places

this

value

in

the

high

correlation

range

stating

scores

are

high,

usually

in

the

s

and

the

s

It

is

interesting

to

note

that

the

correlation

between

short-term

memory

and

IQ

is

only

which

is

just

below

the

moderately-correlated

range

of

In

the

first

of

the

two

prior

studies,

programmer

comprehension

was

measured

using

three

different

levels

of

identifiers:

short

(often

single

letter),

abbreviated,

and

full

word

Unexpectedly,

programmers

elicited

essentially

the

same

information

from

full

word

and

abbreviated

identifiers.

The

second

prior

study

used

information

from

the

English

Lexicon

Project.

It

showed

that

longer

words

required

significantly

greater

time

to

determine

their

validity

as

actual

words

(greater

lexical

decision

making

time)

One

possible

explanation

for

this

phenomenon

is

that

longer

words

require

multiple

fixations

(landings

of

the

eye)

before

they

can

be

recognized

and

correctly

classified..

Combined,

the

results

of

these

two

studies

suggest

a

study

of

the

impact

of

limited

short-term

memory

on

source

code

comprehension.

In

other

words,

can

names

of

the

lengths

used

in

modern

programs

be

too

long

and

thus

crowd

short-term

memory?

The

study

described

herein

presents

statistical

models

based

on

data

collected

to

investigate

this

question..

As

the

statistical

models

are

constructed

from

data

that

includes

repeated

measures

and

missing

values

(e.g.,

due

to

participant

drop

out)

linear

mixed-effects

regression

models

were

used

to

analyze

the

data

Such

models

easily

accommodate

unbalanced

data,

and,

consequently,

are

ideal

for

this

analysis.

These

statistical

models

allow

the

identification

and

examination

of

important

explanatory

variables

associated

with

a

given

response

variable..

The

construction

of

a

linear

mixed-effects

regression

model

starts

with

a

collection

of

explanatory

variables

and

may

include

a

number

of

interaction

terms.

The

interaction

terms

allow

the

effects

of

one

explanatory

variable

on

the

response

to

differ

depending

upon

the

value

of

another

explanatory

variable.

For

example,

if

Java

Experience

interacts

with

Sex

in

a

model

where

Correctness

is

the

response

variable,

then

the

effect

on

Correctness

of

Java

Experience

depends

on

Sex

(i.e.,

is

different

for

men

and

women).

Backward

elimination

of

statistically

non-significant

terms

(p

yields

the

final

model.

Note

that

some

non-significant

variables

and

interactions

are

retained

to

preserve

a

hierarchically

well-formulated

model

Therefore,

individual

p-values

for

terms

participating

in

an

interaction

are

not

reported.

The

quality

of

a

model

is

reported

using

its

Akaike

Information

Criterion

(AIC)

which

is

based

on

the

log-likelihood

but

is

penalized

for

the

number

of

parameters

in

the

model.

AIC

can

be

used

to

compare

mixed-effects

models.

The

model

with

the

smallest

number

is

preferred..

When

interpreting

the

mixed-effects

models

described

in

Section

graphs

are

used

to

illustrate

significant

effects

in

the

model.

However,

when

the

models

have

more

than

two

explanatory

variables

it

is

not

pragmatic

to

graph

all

the

variables.

Thus,

when

plots

are

constructed,

variables

not

being

discussed

are

set

to

their

means

or,

in

the

case

of

categorical

variables,

a

representative

value.

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


The Travelling Salesman Problem with Time Windows: Adapting Algorithms from Travel-time to Makespan Optimization In combinatorial optimization it is not rare to find problems whose mathematical structure is nearly the same, differing only in some aspect related to the motivating application. For example, many problems in machine scheduling and vehicle routing have equivalent formulations and only differ with respect to the optimization objective, or particular constraints. Moreover, while some problems receive a lot of attention from the research community, their close relatives receive hardly any attention at all. Given two closely related problems, it is intuitive that it may be effective to adapt state-of-the-art algorithms-initially introduced for the well-studied problem variant-to the less-studied problem variant. In this paper we provide an example based on the travelling salesman problem with time windows that supports this intuition. In this context, the well-studied problem variant minimizes the travel time, while the less-studied problem variant minimizes the makespan. Indeed, the results show that the algorithms that we adapt from travel-time minimization to makespan minimization significantly outperform the existing state-of-the-art approaches for makespan minimization. As in the classical travelling salesman problem (TSP), the travelling salesman problem with time windows (TSPTW) requires the specification of a Hamiltonian cycle through a graph of nodes, but adds the requirement that each node must be visited within a predefined time window. For a routing application, the TSPTW represents the problem of finding an efficient route, starting and ending at a specified depot, that visits a set of customers, each one in his predefined time window. In the machine scheduling environment, the TSPTW can be used to model the problem of sequencing jobs on a single machine where the setup time of each job depends on the previous job, and each job has a release time and a deadline. In the routing context, the TSPTW objective is typically to minimize the sum of the travel times. In the machine scheduling context, the TSPTW objective is to minimize the makespan. Both versions of the TSPTW are proven to be NP-hard, and even finding feasible solutions is an NP-complete problem [1] . For convenience we henceforth refer to the TSPTW with travel-time minimization by TSPTW-TT, and to the TSPTW with makespan minimization by TSPTW-M. This paper presented the adaptation of the Beam-ACO and compressed annealing algorithms from the travel-time variant of the traveling salesman problem with time windows to the variant that considers makespan optimization. This case study supports the intuition that, when tackling a variant of a wellknown problem, it might be a good strategy to first adapt the best-known algorithms from the literature to the problem variant, before starting to develop completely new algorithms.. Both Beam-ACO and compressed annealing have been subject to a rigorous tuning process in order to obtain well-working Table 9 : Results for instances proposed by Gendreau et al. [13] . [16] are better than the best value we ever found. We suspect a typo in the original paper. inf. The algorithm did not find a single feasible solution over 5 independent runs. (7) parameter settings. Moreover, a comprehensive experimental analysis has shown that both Beam-ACO and compressed annealing perform significantly better than algorithms recently proposed specifically for makespan optimization. Concerning the comparison between Beam-ACO and compressed annealing, a slight but consistent advantage of Beam-ACO over CA was observed.. Future work might consist in adapting other algorithms originally proposed for the travel-time minimization to makespan minimization. However, this may prove to be difficult in the case of algorithms that rely on heuristics specific to the traveltime objective. Moreover, we are not aware of other state-ofthe-art metaheuristics for the travel-time objective that are candidates to perform well for the makespan objective [3] .. Another interesting extension of the present work concerns the automatic development of algorithms for less known problem variants on the basis of well-performing algorithms for well known (and closely related) problems by means of automatic configuration tools [27] . The resulting algorithms would then be benchmarked against the current state of the art for those less known problem variants in the same way as done in this paper.

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


Survey of hardware platforms for an energy efficient implementation of matching pursuits algorithm for shallow water networks Coral reefs worldwide are in serious decline. Underwater wireless sensor networks may be the answer to providing the persistent monitoring presence needed to obtain the data necessary to better understand how to protect these ecosystems for the future. Many advances have been made in underwater acoustic communication devices for underwater wireless sensor networks, but a major challenge that still remains is obtaining an energy efficient modem design. To begin to address this challenge, we implement the Matching Pursuits algorithm for channel estimation, an energy consuming portion of an existing underwater acoustic modem designed for shallow water networks, on a variety of hardware platforms. We determine that a dedicated field programmable gate array (FPGA) intellectual property core provides the most energy efficient hardware platform for Matching Pursuits which motivates future work to port the entire modem design to an FPGA for an energy efficient modem design. Coral reefs worldwide are in serious decline, owing primarily to over-harvesting, pollution, disease, and climate change. Even the Great Barrier Reef, widely regarded as one of the most 'pristine' coral reefs in the world, shows systemwide decline [1] . We need persistent long-term monitoring of key physical, biological, and chemical variables to better understand the dynamics of coral reefs to learn how to protect these ecosystems for the future.. Underwater wireless sensor networks (UWSN) may be the answer to providing a persistent monitoring presence in coral reef ecosystems as they could provide a means to gather long term data without the need for manual retrieval of instruments or the use of potentially damaging undersea cables. However, the undersea environment proposes many challenges to wireless communications including severely limited range-dependent bandwidth and attenuation, extensive time-varying multi-path propagation (especially in shallow water), long propagation delays, and limited battery power [2] . These challenges demand the need for communication devices designed specifically for the underwater application.. Many of these challenges have been addressed as commercial and research underwater modems do exist. However, commercial modems, such as [3] [4] [5] were designed for sparse, long-range (10s of kilometers), systems making them too power hungry and expensive for small, dense sensor-nets [6] . The research designs in [7] [8] and the low-power, low-rate mode of [9] are based on noncoherant frequency shift keying (FSK) which is not necessarily the most energy efficient signaling scheme. It has been shown that direct sequence spread spectrum waveforms yield significantly lower error rates than FSK due to frequency diversity [10] [11] allowing for lower energy consumption. The UCSB AquaModem [11] [12] designed specifically for use in the coral reef UWSN application, uses direct sequence spread spectrum signaling, but was implemented on a TMS320C6713 Digital Signal Processor (DSP) which may not be the most energy efficient hardware platform. Therefore, low energy consumption still remains a significant design challenge for underwater communication devices. Low energy consumption is an extremely important design parameter for underwater acoustic modems for UWSNs as it is difficult and expensive to retrieve underwater devices for battery replacement. To begin to address this challenge, we implement the Matching Pursuits algorithm for channel estimation, on a variety of hardware platforms to select a hardware platform that provides the most energy efficient implementation. We focus on the AquaModem design because it was successfully field tested from July 24 th -July 28 The paper is organized as follows: In section II we present the Matching Pursuits algorithm for channel estimation and describe the design specifications for its use in the AquaModem. In section III, we survey three different hardware platforms used to implement this algorithm: the TMS320C6713 DSP, the Spartan xc3s4000 field programmable gate array (FPGA) chip running MicroBlaze, and the Spartan xc3s4000, running a custom FPGA intellectual property (IP) core. In section IV we compare the energy consumption of each of these implementations and discuss which hardware platform provides the most energy 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. efficient implementation. We conclude with a discussion on future work in section V. The results clearly indicate that the IP Core implementation offers the most energy efficient design, but comes with a cost of a much higher design time, as simple C code cannot be used for such an implementation. The fact that the energy consumption for the custom IP Core is less than that of the DSP motivates porting the entire AquaModem design to an FPGA for an energy efficient underwater modem implementation. Furthermore, the benefit of using FPGAs will further improve in the future as FPGA devices develop the capability to turn off unused area of the device in a specific design allowing for even lower power consumption. In this section we present the results of the MP implementations on the TMS320C6713, the Spartan xc3s4000 chip running MicroBlaze, and the Spartan xc3s4000 running our custom FPGA IP core. All implementations use an estimated number of paths of N f =6 (based on the estimated number of paths used in the AquaModem). The total computational time, computational power, and energy consumption of each implementation are shown in Table 2 . The total computational time for the DSP was estimated by measuring the time to compute one coefficient (about 78 us) and multiplying this number by the size of Nf (6 coefficients). The total computational time for the MicroBlaze implementation was calculated using an embedded timer. The power for the DSP design was estimated using TI's SPRA889A2 Excel spreadsheet Power estimator and the power for the MicroBlaze and FPGA IP Core designs were estimated using the Xilinx Spartan 3 XPower Estimator. The MicroBlaze design was synthesized, placed and routed with Xilinx SDK 9.1 and the FPGA IP Core design was synthesized, placed, and routed with Xilinx ISE 9.1. The number of clock cycles for the FPGA IP Core design was measured in the System Generator environment and the computational time was calculated by multiplying this number with the maximum clock frequency reported by Xilinx ISE 9.1.. As can be seen from Table 2 , the FPGA IP core implementations provides a significant reduction in energy consumption because of either reduced computation time (for the more parallel implementation) or reduced power consumption (for the serial implementation). The Microblaze design provides the worst solution in terms of energy consumption because of its high computation time (due to its lower clock rate (over the DSP) and inefficiencies.

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


Application of the differential transformation method to bifurcation and chaotic analysis of an AFM probe tip The AFM (atomic force microscope) has become a popular and useful instrument for measuring intermolecular forces with atomic resolution, that can be applied in electronics, biological analysis, and studying materials, semiconductors etc. This paper conducts a systematic investigation into the bifurcation and chaotic behavior of the probe tip of an AFM using the differential transformation (DT) method. The validity of the analytical method is confirmed by comparing the DT solutions for the displacement and velocity of the probe tip at various values of the vibrational amplitude with those obtained using the Runge-Kutta (RK) method. The behavior of the probe tip is then characterized utilizing bifurcation diagrams, phase portraits, power spectra, Poincaré maps, and maximum Lyapunov exponent plots. The results indicate that the probe tip behavior is significantly dependent on the magnitude of the vibrational amplitude. Specifically, the tip motion changes first from subharmonic to chaotic motion, then from chaotic to multi-periodic motion, and finally from multi-periodic motion to subharmonic motion with windows of chaotic behavior as the non-dimensional vibrational amplitude is increased from 1.0 to 5.0. Recently, many significant researches have been carried out to design, analyze, and implement microsystems and nanosystems. The AFM enables the measurement of intermolecular forces at the atomic scale and is used extensively for imaging and measuring applications in the nanoelectronics, biological analysis, materials science, and semiconductors fields. Compared to the STM (scanning tunnel microscope), which is applicable only for conducting or semiconducting surfaces, the AFM can image virtually any type of surface, including glass, biological samples, polymers, ceramics, and so forth [1] .. Analyzing the dynamic behavior of the AFM probe tip as it scans the surface of interest is a fundamental concern since any irregular motion during the scanning process inevitably degrades the precision of the measurement results. Consequently, the dynamic properties of the AFM tip-sample interaction have attracted extensive attention in the literature in recent years. Burnham et al. [2] showed experimentally that an AFM microcantilever performed chaotic motion under certain physical conditions. Ashhab et al. [3, 4] analyzed the chaotic dynamics of the AFM cantilever-sample system using the Melnikov method and a single-frequency mode approximation. Sebastian et al. [5] predicted the dynamic behavior of an AFM cantilever in a tapping mode operation using a harmonic balancing and averaging technique. Lee et al. [6] analyzed the effects of van der Waals and Derjaguin-Muller-Toporov forces on the tip-sample interactions in dynamic force microscopy (DFM). Ruetzel et al. [7] applied the Galerkin method to investigate the nonlinear dynamics of an AFM probe tip under the assumption that the tip-surface interactions were governed by Lennard-Jones potentials.

O O O B I O O B 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 B 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 O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O 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 real-time Java chip-multiprocessor Chip-multiprocessors are an emerging trend for embedded systems. In this article, we introduce a real-time Java multiprocessor called JopCMP. It is a symmetric shared-memory multiprocessor, and consists of up to eight Java Optimized Processor (JOP) cores, an arbitration control device, and a shared memory. All components are interconnected via a system on chip bus. The arbiter synchronizes the access of multiple CPUs to the shared main memory. In this article, three different arbitration policies are presented, evaluated, and compared with respect to their real-time and average-case performance: a fixed priority, a fair-based, and a time-sliced arbiter.Tasks running on different CPUs of a chip-multiprocessor (CMP) influence each others' execution times when accessing a shared memory. Therefore, the system needs an arbiter that is able to limit the worst-case execution time of a task running on a CPU, even though tasks executing simultaneously on other CPUs access the main memory. Our research shows that timing analysis is in fact possible for homogeneous multiprocessor systems with a shared memory. The timing analysis of tasks, executing on the CMP using time-sliced memory arbitration, leads to viable worst-case execution time bounds.The time-sliced arbiter divides the memory access time into equal time slots, one time slot for each CPU. This memory arbitration scheme allows for a calculation of upper bounds of Java application worst-case execution times, depending on the number of CPUs, the time slot size, and the memory access time. Examples of worst-case execution time calculation are presented, and the analyzed results of a real-world application task are compared to measured execution time results. Finally, we evaluate the tradeoffs when using a time-predictable solution compared to using average-case optimized chip-multiprocessors, applying three different benchmarks. These experiments are carried out by executing the programs on the CMP prototype. Modern applications demand ever-increasing processing power. They act as the main drivers for the semiconductor industry. For over 35 years, transistors have been getting faster and clock frequency has adapted accordingly. Additionally, the number of transistors on an integrated circuit at a given cost doubles every 24 months, as described by Moore's Law [Moore 1965 ]. The availability of more transistors facilitated an instruction-level parallelism (ILP) approach, which was the primary processor design objective between the mid-1980s and the start of the 21st century. According to Hennessy and Patterson [2006] , we are now reaching the limits of exploiting ILP efficiently. Unfortunately, semiconductor technology has also reached its apex in recent years because of theoretical physical limits. As a result, the frequency, which used to increase exponentially, has leveled off [Laudon and Spracklen 2007] .. According to Hennessy and Patterson [2006] , chip-multiprocessors (CMP) are the future path of performance enhancements. The CMP technology integrates two or more processing units and a sophisticated communication network into a single integrated circuit. A major advantage of this approach is that progress in processing power would not be accompanied by an increase in the hardware complexity of the single processors. According to Wolf [2006] , CMPs combine the significant advantages of embedded systems: increased performance, lower power consumption, and cost efficiency. Our research shows that timing analysis is in fact possible for homogeneous multiprocessor systems with a shared memory. In this article, we have presented a Java multiprocessor architecture consisting of a number of JOP cores and a shared memory. An arbiter is used to synchronize memory access by multiple processors. Three different arbitration schemes are described, analyzed, and compared for viable use in real-time CMPs.. The key component enabling WCET analysis of the CMP is a TDMA arbiter. It splits up the memory access bandwidth into equal shares. We analyze the WCET of Java bytecodes instead of the WCET for a single memory access. These WCETs are dependent on time slot sizes, number of CPUs in the system, and memory access time. Therefore, JOP's WCET tool was enhanced to be able to integrate maximum latencies through memory access collisions of multiple CPUs.. Furthermore, examples of WCET calculations are presented, and WCET estimates are compared to measurement results. The experiments were carried out by executing three benchmarks on real hardware. Several experiments have demonstrated that we have to accept the exclusivity of applying either a time-predictable architecture or an architecture designed for average-case performance.. The outlook of further research of time-predictable multiprocessor systems has two closely related aspects: the design of multiprocessor architecture and the WCET analysis. Modifications within the architecture might make the analysis more intricate but an increase in processor performance is assured.. We plan to investigate the use of a percentage-based arbitration of the available memory access bandwidth, so memory bandwidth per CPU will be adjusted, dependent on the workload of the multiple CPUs. For example, if one CPU needs 60% of the available memory bandwidth, that is exactly what it will receive. Three different arbiters were implemented to be able to experiment with different CMP systems, highlight advantages and disadvantages, and find the most practical field of application. Table IX summarizes the differences among various arbitration policies. Three quite different CMP architectures are state-of-the-art in mainstream desktop and server processors: multicore versions of super-scalar architectures by Intel and AMD [Keltcher et al. 2003 ], multicore chips with simple RISC processors like Sun Niagara [Kongetira et al. 2005] , and the Cell architecture [Hofstee 2005; Kahle et al. 2005; Kistler et al. 2006] . The Cell is a heterogeneous multiprocessor consisting of a PowerPC microprocessor and eight coprocessors. These multiprocessors are not considered viable for timepredictable systems because their architectures are optimized for average-case performance and not for WCET. Complex hardware complicates the timing analysis.. The following sections describe the progress made in CMP for embedded systems. Furthermore, related work on timing analysis of processor architectures is summarized.

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