Methods and Applications of Algorithmic Complexity


Book Description

This book explores a different pragmatic approach to algorithmic complexity rooted or motivated by the theoretical foundations of algorithmic probability and explores the relaxation of necessary and sufficient conditions in the pursuit of numerical applicability, with some of these approaches entailing greater risks than others in exchange for greater relevance and applicability. Some established and also novel techniques in the field of applications of algorithmic (Kolmogorov) complexity currently coexist for the first time, ranging from the dominant ones based upon popular statistical lossless compression algorithms (such as LZW) to newer approaches that advance, complement, and also pose their own limitations. Evidence suggesting that these different methods complement each other for different regimes is presented, and despite their many challenges, some of these methods are better grounded in or motivated by the principles of algorithmic information. The authors propose that the field can make greater contributions to science, causation, scientific discovery, networks, and cognition, to mention a few among many fields, instead of remaining either as a technical curiosity of mathematical interest only or as a statistical tool when collapsed into an application of popular lossless compression algorithms. This book goes, thus, beyond popular statistical lossless compression and introduces a different methodological approach to dealing with algorithmic complexity. For example, graph theory and network science are classic subjects in mathematics widely investigated in the twentieth century, transforming research in many fields of science from economy to medicine. However, it has become increasingly clear that the challenge of analyzing these networks cannot be addressed by tools relying solely on statistical methods. Therefore, model-driven approaches are needed. Recent advances in network science suggest that algorithmic information theory could play an increasingly important role in breaking those limits imposed by traditional statistical analysis (entropy or statistical compression) in modeling evolving complex networks or interacting networks. Further progress on this front calls for new techniques for an improved mechanistic understanding of complex systems, thereby calling out for increased interaction between systems science, network theory, and algorithmic information theory, to which this book contributes.




Computational Complexity


Book Description

New and classical results in computational complexity, including interactive proofs, PCP, derandomization, and quantum computation. Ideal for graduate students.




Algorithms and Complexity


Book Description

This book is an introductory textbook on the design and analysis of algorithms. The author uses a careful selection of a few topics to illustrate the tools for algorithm analysis. Recursive algorithms are illustrated by Quicksort, FFT, fast matrix multiplications, and others. Algorithms associated with the network flow problem are fundamental in many areas of graph connectivity, matching theory, etc. Algorithms in number theory are discussed with some applications to public key encryption. This second edition will differ from the present edition mainly in that solutions to most of the exercises will be included.




An Introduction to Kolmogorov Complexity and Its Applications


Book Description

Briefly, we review the basic elements of computability theory and prob ability theory that are required. Finally, in order to place the subject in the appropriate historical and conceptual context we trace the main roots of Kolmogorov complexity. This way the stage is set for Chapters 2 and 3, where we introduce the notion of optimal effective descriptions of objects. The length of such a description (or the number of bits of information in it) is its Kolmogorov complexity. We treat all aspects of the elementary mathematical theory of Kolmogorov complexity. This body of knowledge may be called algo rithmic complexity theory. The theory of Martin-Lof tests for random ness of finite objects and infinite sequences is inextricably intertwined with the theory of Kolmogorov complexity and is completely treated. We also investigate the statistical properties of finite strings with high Kolmogorov complexity. Both of these topics are eminently useful in the applications part of the book. We also investigate the recursion theoretic properties of Kolmogorov complexity (relations with Godel's incompleteness result), and the Kolmogorov complexity version of infor mation theory, which we may call "algorithmic information theory" or "absolute information theory. " The treatment of algorithmic probability theory in Chapter 4 presup poses Sections 1. 6, 1. 11. 2, and Chapter 3 (at least Sections 3. 1 through 3. 4).




Computational Complexity


Book Description

Complex systems are systems that comprise many interacting parts with the ability to generate a new quality of collective behavior through self-organization, e.g. the spontaneous formation of temporal, spatial or functional structures. These systems are often characterized by extreme sensitivity to initial conditions as well as emergent behavior that are not readily predictable or even completely deterministic. The recognition that the collective behavior of the whole system cannot be simply inferred from an understanding of the behavior of the individual components has led to the development of numerous sophisticated new computational and modeling tools with applications to a wide range of scientific, engineering, and societal phenomena. Computational Complexity: Theory, Techniques and Applications presents a detailed and integrated view of the theoretical basis, computational methods, and state-of-the-art approaches to investigating and modeling of inherently difficult problems whose solution requires extensive resources approaching the practical limits of present-day computer systems. This comprehensive and authoritative reference examines key components of computational complexity, including cellular automata, graph theory, data mining, granular computing, soft computing, wavelets, and more.




Spatial Complexity


Book Description

This book delivers stimulating input for a broad range of researchers, from geographers and ecologists to psychologists interested in spatial perception and physicists researching in complex systems. How can one decide whether one surface or spatial object is more complex than another? What does it require to measure the spatial complexity of small maps, and why does this matter for nature, science and technology? Drawing from algorithmics, geometry, topology, probability and informatics, and with examples from everyday life, the reader is invited to cross the borders into the bewildering realm of spatial complexity, as it emerges from the study of geographic maps, landscapes, surfaces, knots, 3D and 4D objects. The mathematical and cartographic experiments described in this book lead to hypotheses and enigmas with ramifications in aesthetics and epistemology.




The Complexity Theory Companion


Book Description

Here is an accessible, algorithmically oriented guide to some of the most interesting techniques of complexity theory. The book shows that simple algorithms are at the heart of complexity theory. The book is organized by technique rather than by topic. Each chapter focuses on one technique: what it is, and what results and applications it yields.




State-Space Search


Book Description

This book is particularly concerned with heuristic state-space search for combinatorial optimization. Its two central themes are the average-case complexity of state-space search algorithms and the applications of the results notably to branch-and-bound techniques. Primarily written for researchers in computer science, the author presupposes a basic familiarity with complexity theory, and it is assumed that the reader is familiar with the basic concepts of random variables and recursive functions. Two successful applications are presented in depth: one is a set of state-space transformation methods which can be used to find approximate solutions quickly, and the second is forward estimation for constructing more informative evaluation functions.




Kolmogorov Complexity and Computational Complexity


Book Description

The mathematical theory of computation has given rise to two important ap proaches to the informal notion of "complexity": Kolmogorov complexity, usu ally a complexity measure for a single object such as a string, a sequence etc., measures the amount of information necessary to describe the object. Compu tational complexity, usually a complexity measure for a set of objects, measures the compuational resources necessary to recognize or produce elements of the set. The relation between these two complexity measures has been considered for more than two decades, and may interesting and deep observations have been obtained. In March 1990, the Symposium on Theory and Application of Minimal Length Encoding was held at Stanford University as a part of the AAAI 1990 Spring Symposium Series. Some sessions of the symposium were dedicated to Kolmogorov complexity and its relations to the computational complexity the ory, and excellent expository talks were given there. Feeling that, due to the importance of the material, some way should be found to share these talks with researchers in the computer science community, I asked the speakers of those sessions to write survey papers based on their talks in the symposium. In response, five speakers from the sessions contributed the papers which appear in this book.




Python Algorithms


Book Description

Python Algorithms explains the Python approach to algorithm analysis and design. Written by Magnus Lie Hetland, author of Beginning Python, this book is sharply focused on classical algorithms, but it also gives a solid understanding of fundamental algorithmic problem-solving techniques. The book deals with some of the most important and challenging areas of programming and computer science, but in a highly pedagogic and readable manner. The book covers both algorithmic theory and programming practice, demonstrating how theory is reflected in real Python programs. Well-known algorithms and data structures that are built into the Python language are explained, and the user is shown how to implement and evaluate others himself.