Basic Concepts in Data Structures
Data structures are the fundamental building blocks of any computer program, used for storing, representing and manipulating data in a computer. This text presents the basic concepts of data structures as part of the art of writing computer programs. The author concentrates on the fundamentals of what should be done to solve a problem efficiently rather than technical implementation details. The text includes pseudocode and covers all the most common data structures, such as queues, stacks, trees, heaps, and hash tables, along with the basics of searching, sorting, and coding. This book can supplement any undergraduate algorithms or discrete math course and will also be accessible to students and researchers in other quantitative disciplines. No prerequisites beyond introductory programming and basic mathematics are required, and the accessible, conceptual presentation will appeal to undergraduates in many quantitative fields. Carefully designed problem sets with selected solutions will allow students to test their understanding
Model checking is a technique for verifying finite state concurrent systems such as sequential circuit designs and communication protocols. It has a number of advantages over traditional approaches that are based on simulation, testing, and deductive reasoning. In particular, model checking is automatic and usually quite fast. Also, if the design contains an error, model checking will produce a counterexample that can be used to pinpoint the source of the error. The method, which was awarded the 1998 ACM Paris Kanellakis Award for Theory and Practice, has been used successfully in practice to verify real industrial designs, and companies are beginning to market commercial model checkers.The main challenge in model checking is dealing with the state space explosion problem. This problem occurs in systems with many components that can interact with each other or systems with data structures that can assume many different values. In such cases the number of global states can be enormous. Researchers have made considerable progress on this problem over the last ten years.This is the first comprehensive presentation of the theory and practice of model checking. The book, which includes basic as well as state-of-the-art techniques, algorithms, and tools, can be used both as an introduction to the subject and as a reference for researchers.
Software Reliability Methods
Computers and Games
This book constitutes the thoroughly refereed post-proceedings of the 4th International Conference on Computers and Games, CG 2004, held in July 2004. The 21 revised full papers presented together with one keynote article were carefully selected during two rounds of reviewing and improvement from 37 submissions. The papers cover all aspects of artificial intelligence in computer-game playing. Topics addressed include evaluation and learning, search, single-agent search and planning, and computer Go.
Strategic Negotiation in Multiagent Environments
As computers advance from isolated workstations to linked elements in complex communities of systems and people, cooperation and coordination via intelligent agents become increasingly important. Examples of such communities include the Internet, electronic commerce, health institutions, electricity networks, and digital libraries.Sarit Kraus is concerned here with the cooperation and coordination of intelligent agents that are self-interested and usually owned by different individuals or organizations. Conflicts frequently arise, and negotiation is one of the main mechanisms for reaching agreement. Kraus presents a strategic-negotiation model that enables autonomous agents to reach mutually beneficial agreements efficiently in complex environments. The model, which integrates game theory, economic techniques, and heuristic methods of artificial intelligence, can be automated in computer systems or applied to human situations. The book provides both theoretical and experimental results.
Image Registration for Remote Sensing
Image registration is a digital image processing discipline that studies how to bring two or more digital images into precise alignment for analysis and comparison. Accurate registration algorithms are essential for creating mosaics of satellite images and tracking changes on the planet's surface over time. Bringing together invited contributions from 36 distinguished researchers, the book presents a detailed overview of current research and practice in the application of image registration to remote sensing imagery. Chapters cover the problem definition, theoretical issues in accuracy and efficiency, fundamental algorithms, and real-world case studies of image registration software applied to imagery from operational satellite systems. This book provides a comprehensive and practical overview for Earth and space scientists, presents image processing researchers with a summary of current research, and can be used for specialized graduate courses.
String Processing and Information Retrieval
This book constitutes the refereed proceedings of the 15th International Symposium on String Processing and Information Retrieval, SPIRE 2008, held in Melbourne, Australia, in November 2008. The 25 revised full papers presented together with 2 invited talks were carefully reviewed and selected from 54 submissions. The papers are organized in topical sections on compression and performance, information retrieval scoring and ranking, string matching techniques, self-indexing, string matching: space and practicality, information retrieval, non-standard matching, and bioinformatics.
Introduction to Modern Cryptography
Cryptography plays a key role in ensuring the privacy and integrity of data and the security of computer networks. Introduction to Modern Cryptography provides a rigorous yet accessible treatment of modern cryptography, with a focus on formal definitions, precise assumptions, and rigorous proofs.
The authors introduce the core principles of modern cryptography, including the modern, computational approach to security that overcomes the limitations of perfect secrecy. An extensive treatment of private-key encryption and message authentication follows. The authors also illustrate design principles for block ciphers, such as the Data Encryption Standard (DES) and the Advanced Encryption Standard (AES), and present provably secure constructions of block ciphers from lower-level primitives. The second half of the book focuses on public-key cryptography, beginning with a self-contained introduction to the number theory needed to understand the RSA, Diffie-Hellman, El Gamal, and other cryptosystems. After exploring public-key encryption and digital signatures, the book concludes with a discussion of the random oracle model and its applications.
Serving as a textbook, a reference, or for self-study, Introduction to Modern Cryptography presents the necessary tools to fully understand this fascinating subject.
Efficient Secure Two-Party Protocols
The authors present a comprehensive study of efficient protocols and techniques for secure two-party computation – both general constructions that can be used to securely compute any functionality, and protocols for specific problems of interest. The book focuses on techniques for constructing efficient protocols and proving them secure. In addition, the authors study different definitional paradigms and compare the efficiency of protocols achieved under these different definitions. The book opens with a general introduction to secure computation and then presents definitions of security for a number of different adversary models and definitional paradigms. In the second part, the book shows how any functionality can be securely computed in an efficient way in the presence of semi-honest, malicious and covert adversaries. These general constructions provide a basis for understanding the feasibility of secure computation, and they are a good introduction to design paradigms and proof techniques for efficient protocols. In the final part, the book presents specific constructions of importance. The authors begin with an in-depth study of sigma protocols and zero knowledge, focusing on secure computation, and they then provide a comprehensive study of the fundamental oblivious transfer function. Starting from protocols that achieve privacy only, they show highly efficient constructions that achieve security in the presence of malicious adversaries for both a single and multiple batch executions. Oblivious pseudorandom function evaluation is then presented as an immediate application of oblivious transfer. Finally, the book concludes with two examples of high-level protocol problems that demonstrate how specific properties of a problem can be exploited to gain high efficiency: securely computing the kth-ranked element, and secure database and text search. This book is essential for practitioners and researchers in the field of secure protocols, particularly those with a focus on efficiency, and for researchers in the area of privacy-preserving data mining. This book can also be used as a textbook for an advanced course on secure protocols.
Composition of Secure Multi-Party Protocols
In the setting of multi-party computation, sets of two or more parties with private inputs wish to jointly compute some (predetermined) function of their inputs. General results concerning secure two-party or multi-party computation were first announced in the 1980s. Put briefly, these results assert that under certain assumptions one can construct protocols for securely computing any desired multi-party functionality. However, this research relates only to a setting where a single protocol execution is carried out. In contrast, in modern networks, many different protocol executions are run at the same time.
This book is devoted to the general and systematic study of secure multi-party computation under composition. Despite its emphasis on a theoretically well-founded treatment of the subject, general techniques for designing secure protocols are developed that may even result in schemes or modules to be incorporated in practical systems. The book clarifies fundamental issues regarding security in a multi-execution environment and gives a comprehensive and unique treatement of the composition of secure multi-party protocols.