Results 1  10
of
18
Introduction to Algorithms, second edition
 BOOK
, 2001
"... This part will get you started in thinking about designing and analyzing algorithms.
It is intended to be a gentle introduction to how we specify algorithms, some of the
design strategies we will use throughout this book, and many of the fundamental
ideas used in algorithm analysis. Later parts of t ..."
Abstract

Cited by 704 (3 self)
 Add to MetaCart
This part will get you started in thinking about designing and analyzing algorithms.
It is intended to be a gentle introduction to how we specify algorithms, some of the
design strategies we will use throughout this book, and many of the fundamental
ideas used in algorithm analysis. Later parts of this book will build upon this base.
Chapter 1 is an overview of algorithms and their place in modern computing
systems. This chapter defines what an algorithm is and lists some examples. It also
makes a case that algorithms are a technology, just as are fast hardware, graphical
user interfaces, objectoriented systems, and networks.
In Chapter 2, we see our first algorithms, which solve the problem of sorting
a sequence of n numbers. They are written in a pseudocode which, although not
directly translatable to any conventional programming language, conveys the structure
of the algorithm clearly enough that a competent programmer can implement
it in the language of his choice. The sorting algorithms we examine are insertion
sort, which uses an incremental approach, and merge sort, which uses a recursive
technique known as “divide and conquer.” Although the time each requires increases
with the value of n, the rate of increase differs between the two algorithms.
We determine these running times in Chapter 2, and we develop a useful notation
to express them.
Chapter 3 precisely defines this notation, which we call asymptotic notation. It
starts by defining several asymptotic notations, which we use for bounding algorithm
running times from above and/or below. The rest of Chapter 3 is primarily a
presentation of mathematical notation. Its purpose is more to ensure that your use
of notation matches that in this book than to teach you new mathematical concepts.
Logic in Computer Science: Modelling and Reasoning about Systems
, 1999
"... ion. ACM Transactions on Programming Languages and Systems, 16(5):15121542, September 1994. Bibliography 401 [Che80] B. F. Chellas. Modal Logic  an Introduction. Cambridge University Press, 1980. [Dam96] D. R. Dams. Abstract Interpretation and Partition Refinement for Model Checking. PhD thesi ..."
Abstract

Cited by 238 (8 self)
 Add to MetaCart
ion. ACM Transactions on Programming Languages and Systems, 16(5):15121542, September 1994. Bibliography 401 [Che80] B. F. Chellas. Modal Logic  an Introduction. Cambridge University Press, 1980. [Dam96] D. R. Dams. Abstract Interpretation and Partition Refinement for Model Checking. PhD thesis, Institute for Programming research and Algorithmics. Eindhoven University of Technology, July 1996. [Dij76] E. W. Dijkstra. A Discipline of Programming. Prentice Hall, 1976. [DP96] R. Davies and F. Pfenning. A Modal Analysis of Staged Computation. In 23rd Annual ACM Symposium on Principles of Programming Languages. ACM Press, January 1996. [EN94] R. Elmasri and S. B. Navathe. Fundamentals of Database Systems. Benjamin/Cummings, 1994. [FHMV95] Ronald Fagin, Joseph Y. Halpern, Yoram Moses, and Moshe Y. Vardi. Reasoning about Knowledge. MIT Press, Cambridge, 1995. [Fit93] M. Fitting. Basic modal logic. In D. Gabbay, C. Hogger, and J. Robinson, editors, Handbook of Logic in Artificial In...
Deriving Specialized Program Analyses for Certifying ComponentClient Conformance
, 2002
"... We are concerned with the problem of statically certifying (verifying) whether the client of a software component conforms to the component's constraints for correct usage. We show how conformance certification can be efficiently carried out in a staged fashion for certain classes of firstorder saf ..."
Abstract

Cited by 33 (8 self)
 Add to MetaCart
We are concerned with the problem of statically certifying (verifying) whether the client of a software component conforms to the component's constraints for correct usage. We show how conformance certification can be efficiently carried out in a staged fashion for certain classes of firstorder safety (FOS) specifications, which can express relationship requirements among potentially unbounded collections of runtime objects. In the first stage of the certification process, we systematically derive an abstraction that is used to model the component state during analysis of arbitrary clients. In general, the derived abstraction will utilize firstorder predicates, rather than the propositions often used by model checkers. In the second stage, the generated abstraction is incorporated into a static analysis engine to produce a certifier. In the final stage, the resulting certifier is applied to a client to conservatively determine whether the client violates the component's constraints. Unlike verification approaches that analyze a specification and client code together, our technique can take advantage of computationallyintensive symbolic techniques during the abstraction generation phase, without affecting the performance of client analysis. Using as a running example the Concurrent Modification Problem (CMP), which arises when certain classes defined by the Java Collections Framework are misused, we describe several different classes of certifiers with varying time/space/precision tradeoffs. Of particular note are precise, polynomialtime, flow and contextsensitive certifiers for certain classes of FOS specifications and client programs. Finally, we evaluate a prototype implementation of a certifier for CMP on a variety of test programs. The results of the evaluatio...
Design Patterns for Games
 Proceedings of ACM SIGCSE Technical Symposium, 2002
, 2002
"... dxnguyen @ rice.edu, swong @ rice.edu Designing a twoperson game involves identifying the game model to compute the best moves, the user interface (the "view") to play the game, and the controller to coordinate the model and the view. A crucial task is to forms. This can prove to be a difficult and ..."
Abstract

Cited by 9 (0 self)
 Add to MetaCart
dxnguyen @ rice.edu, swong @ rice.edu Designing a twoperson game involves identifying the game model to compute the best moves, the user interface (the "view") to play the game, and the controller to coordinate the model and the view. A crucial task is to forms. This can prove to be a difficult and subtle endeavor. It is made easier however by the use of good objectoriented (OO) design principles to help maintain a high level abstract viewpoint during the design process. The state pattern is used to represent the game board and is coupled with the visitor pattern to provide statedependent, variant behaviors. The rainmax algorithm and its variants are implemented as the strategy pattern, which allows flexible and extensible computational capability. Careful analysis is performed to properly abstract the interactions between the model and the view. The command design pattern is used to provide callback services between the model and the view. Leading students through this design process enables them to learn algorithms and architectures that easily scale to fullsized applications. 1
Ordered asynchronous processes in natural and artificial systems
 Zealand: The University of Otago
, 2001
"... Models of multiagent systems with fixed network structure usually update the states of all agents in synchronous fashion. Examples include Cellular Automata, Random Boolean Networks and Artificial Neural Networks. Some recent studies have shown that the behaviour of such models can change dramatica ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
Models of multiagent systems with fixed network structure usually update the states of all agents in synchronous fashion. Examples include Cellular Automata, Random Boolean Networks and Artificial Neural Networks. Some recent studies have shown that the behaviour of such models can change dramatically if random asynchronous updating is used. Here we show that many real systems, both natural and artificial, undergo updating that is asynchronous, but ordered in some way. We use examples to demonstrate some of the properties of ordered asynchronous updating in Lsystems and cellular automata. In many cases, models of such processes effectively hide both their asynchronous nature, and the ordering, by embedding them in the model's details. This practice has prevented earlier recognition of ordered asynchronicity as well as some important implications. Among these implications are its role in the rise of modularity within complex systems. As an example, we introduce the “spotlight model ” of gene regulation, a random Boolean network in which controller nodes create modules by unfreezing different sets of nodes in turn. We argue that such models are not only more realistic representations of nature, but have potential advantages for solving complex problems.
Computational geometry and image processing applications for an undergraduate algorithms course
 in Proceedings of the Workshop on Undergraduate Education and Computer Vision
, 2000
"... Image related computations are becoming mainstream in today’s computing environment. However, Computer Science departments are still offering image related courses as electives or at the graduate level. Since imaging is becoming a core topic, it needs to be covered in the core courses. Most departme ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
Image related computations are becoming mainstream in today’s computing environment. However, Computer Science departments are still offering image related courses as electives or at the graduate level. Since imaging is becoming a core topic, it needs to be covered in the core courses. Most departments cannot afford to add another course into their curriculum at this level, so they only remaining choice is to integrate image related applications into the existing core courses. This paper addresses this issue as it relates to an Algorithms course. The specific prerequisites and goals of our Algorithms course are described. The image related applications that have been adopted are presented and their impact on the course is discussed. 1.
An Enhancement of Major Sorting Algorithms
, 2008
"... Abstract: One of the fundamental issues in computer science is ordering a list of items. Although there is a huge number of sorting algorithms, sorting problem has attracted a great deal of research; because efficient sorting is important to optimize the use of other algorithms. This paper presents ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
Abstract: One of the fundamental issues in computer science is ordering a list of items. Although there is a huge number of sorting algorithms, sorting problem has attracted a great deal of research; because efficient sorting is important to optimize the use of other algorithms. This paper presents two new sorting algorithms, enhanced selection sort and enhanced bubble Sort algorithms. Enhanced selection sort is an enhancement on selection sort by making it slightly faster and stable sorting algorithm. Enhanced bubble sort is an enhancement on both bubble sort and selection sort algorithms with O(nlgn) complexity instead of O(n 2) for bubble sort and selection sort algorithms. The two new algorithms are analyzed, implemented, tested, and compared and the results were promising.
A.: A tutorial on specifying data structures
 in Maude (2004) Presented at PROLE’04
"... This tutorial describes the equational specification of a series of typical data structures in Maude. We start with the wellknown stacks, queues, and lists, to continue with binary and search trees. Not only are the simple versions considered but also advanced ones such as AVL and 234 trees. The ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
This tutorial describes the equational specification of a series of typical data structures in Maude. We start with the wellknown stacks, queues, and lists, to continue with binary and search trees. Not only are the simple versions considered but also advanced ones such as AVL and 234 trees. The operator attributes available in Maude allow the specification of data based on constructors that satisfy some equational properties, like concatenation of lists which is associative and has the empty list as identity, as opposed to the free constructors available in other functional programming languages. Moreover, the expressive version of equational logic in which Maude is based, namely membership equational logic, allows the faithful specification of types whose data are defined not only by means of constructors, but also by the satisfaction of additional properties, like sorted lists or search trees. In the second part of the paper we describe the use of an inductive theorem prover, the ITP, which itself is developed and integrated in Maude by means of the powerful metalevel and metalanguage features offered by the latter, to prove properties of the data structures. This is work in progress because the ITP is still under development and, as soon as the data gets a bit complex, the proof of their properties gets even more complex. Keywords: Data structures, algebraic specification, membership equational logic, Maude, inductive theorem proving. 1
AlgAE (Algorithm Animation Engine) Programmers
, 2001
"... Copyright: This document, and the ALGAE source code, is ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Copyright: This document, and the ALGAE source code, is
On the Implementation of AD using Elimination Methods via Source Transformation
 Cranfield University (RMCS Shrivenham), Swindon
, 2000
"... In this paper, we investigate the implementation of an Automatic Differentiation tool based on source transformation by using vertex elimination methods related to sparse matrices. We focus on a restricted class of Fortran codes from CFD applications and aim to provide a nearoptimal differentiation ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
In this paper, we investigate the implementation of an Automatic Differentiation tool based on source transformation by using vertex elimination methods related to sparse matrices. We focus on a restricted class of Fortran codes from CFD applications and aim to provide a nearoptimal differentiation approach for such problems. We discuss the algorithms and data structures we use in developing that AD tool.