![]() |
![]() |
Your cart is empty |
||
Books > Computing & IT > General theory of computing > Data structures
Based on a new classification of algorithm design techniques and a clear delineation of analysis methods, Introduction to the Design and Analysis of Algorithms presents the subject in a coherent and innovative manner. Written in a student-friendly style, the book emphasises the understanding of ideas over excessively formal treatment while thoroughly covering the material required in an introductory algorithms course. Popular puzzles are used to motivate students' interest and strengthen their skills in algorithmic problem solving. Other learning-enhancement features include chapter summaries, hints to the exercises, and a detailed solution manual.
Whether you are a computer programming student, hobbyist or professional, Lambert's FUNDAMENTALS OF PYTHON (TM): DATA STRUCTURES, 2E offers the perfect introduction to object-oriented design and data structures using the popular Python (TM) programming language. The level of instruction is ideal if you've had at least one semester of programming experience in an object-oriented language, such as Java (TM), C++ or Python (TM). Step-by-step explanations and focused exercises clearly explain the design of collection classes with polymorphism and inheritance and multiple implementations of collection interfaces. This edition also addresses the analysis of the space/time tradeoffs of different collection implementations and, specifically, array-based implementations and link-based implementations. You learn to work with collections, including sets, lists, stacks, queues, trees, dictionaries and graphs. Prepare for success with FUNDAMENTALS OF PYTHON (TM): DATA STRUCTURES, 2E.
This open access book discusses the statistical modeling of insurance problems, a process which comprises data collection, data analysis and statistical model building to forecast insured events that may happen in the future. It presents the mathematical foundations behind these fundamental statistical concepts and how they can be applied in daily actuarial practice. Statistical modeling has a wide range of applications, and, depending on the application, the theoretical aspects may be weighted differently: here the main focus is on prediction rather than explanation. Starting with a presentation of state-of-the-art actuarial models, such as generalized linear models, the book then dives into modern machine learning tools such as neural networks and text recognition to improve predictive modeling with complex features. Providing practitioners with detailed guidance on how to apply machine learning methods to real-world data sets, and how to interpret the results without losing sight of the mathematical assumptions on which these methods are based, the book can serve as a modern basis for an actuarial education syllabus.
This book takes its reader on a journey through Apache Giraph, a popular distributed graph processing platform designed to bring the power of big data processing to graph data. Designed as a step-by-step self-study guide for everyone interested in large-scale graph processing, it describes the fundamental abstractions of the system, its programming models and various techniques for using the system to process graph data at scale, including the implementation of several popular and advanced graph analytics algorithms. The book is organized as follows: Chapter 1 starts by providing a general background of the big data phenomenon and a general introduction to the Apache Giraph system, its abstraction, programming model and design architecture. Next, chapter 2 focuses on Giraph as a platform and how to use it. Based on a sample job, even more advanced topics like monitoring the Giraph application lifecycle and different methods for monitoring Giraph jobs are explained. Chapter 3 then provides an introduction to Giraph programming, introduces the basic Giraph graph model and explains how to write Giraph programs. In turn, Chapter 4 discusses in detail the implementation of some popular graph algorithms including PageRank, connected components, shortest paths and triangle closing. Chapter 5 focuses on advanced Giraph programming, discussing common Giraph algorithmic optimizations, tunable Giraph configurations that determine the system's utilization of the underlying resources, and how to write a custom graph input and output format. Lastly, chapter 6 highlights two systems that have been introduced to tackle the challenge of large scale graph processing, GraphX and GraphLab, and explains the main commonalities and differences between these systems and Apache Giraph. This book serves as an essential reference guide for students, researchers and practitioners in the domain of large scale graph processing. It offers step-by-step guidance, with several code examples and the complete source code available in the related github repository. Students will find a comprehensive introduction to and hands-on practice with tackling large scale graph processing problems using the Apache Giraph system, while researchers will discover thorough coverage of the emerging and ongoing advancements in big graph processing systems.
This book studies selected advanced flight control schemes for an uncertain quadrotor unmanned aerial vehicle (UAV) systems in the presence of constant external disturbances, parametric uncertainties, measurement noise, time-varying external disturbances, and random external disturbances. Furthermore, in all the control techniques proposed in this book, it includes the simulation results with comparison to other nonlinear control schemes recently developed for the tracking control of a quadrotor UAV. The main contributions of the present book for quadrotor UAV systems are as follows: (i) the proposed control methods are based on the high-order sliding mode controller (SMC) and hybrid control algorithm with an optimization method. (ii) the finite-time control schemes are developed by using fast terminal SMC (FTSMC), nonsingular FTSMC (NFTSMC), global time-varying SMC, and adaptive laws. (iii) the fractional-order flight control schemes are developed by using the fractional-order calculus theory, super twisting algorithm, NFTSMC, and the SMC. This book covers the research history and importance of quadrotor system subject to system uncertainties, external wind disturbances, and noise measurements, as well as the research status of advanced flight control methods, adaptive flight control methods, and flight control based on fractional-order theory. The book would be interesting to most academic undergraduate, postgraduates, researchers on flight control for drones and applications of advanced controllers in engineering field. This book presents a must-survey for advanced finite-time control for quadrotor system. Some parts of this book have the potential of becoming the courses for the modelling and control of autonomous flying machines. Readers (academic researcher, undergraduate student, postgraduate student, MBA/executive, and education practitioner) interested in nonlinear control methods find this book an investigation. This book can be used as a good reference for the academic research on the control theory, drones, terminal sliding mode control, and related to this or used in Ph.D. study of control theory and their application in field engineering.
Soft computing methods such as neural networks and genetic algorithms draw on the problem solving strategies of the natural world which differ fundamentally from the mathematically-based computing methods normally used in engineering. Human brains are highly effective computers with capabilities far beyond those of the most sophisticated electronic computers. The 'soft computing' methods they use can solve very difficult inverse problems based on reduction in disorder. This book outlines these methods and applies them to a range of difficult engineering problems, including applications in computational mechanics, earthquake engineering, and engineering design. Most of these are difficult inverse problems - especially in engineering design - and are treated in depth.
The Fourier transform is one of the most fundamental tools for computing the frequency representation of signals. It plays a central role in signal processing, communications, audio and video compression, medical imaging, genomics, astronomy, as well as many other areas. Because of its widespread use, fast algorithms for computing the Fourier transform can benefit a large number of applications. The fastest algorithm for computing the Fourier transform is the Fast Fourier Transform (FFT), which runs in near-linear time making it an indispensable tool for many applications. However, today, the runtime of the FFT algorithm is no longer fast enough especially for big data problems where each dataset can be few terabytes. Hence, faster algorithms that run in sublinear time, i.e., do not even sample all the data points, have become necessary. This book addresses the above problem by developing the Sparse Fourier Transform algorithms and building practical systems that use these algorithms to solve key problems in six different applications: wireless networks; mobile systems; computer graphics; medical imaging; biochemistry; and digital circuits. This is a revised version of the thesis that won the 2016 ACM Doctoral Dissertation Award.
Evolutionary Computation 2: Advanced Algorithms and Operators expands upon the basic ideas underlying evolutionary algorithms. The focus is on fitness evaluation, constraint-handling techniques, population structures, advanced techniques in evolutionary computation, and the implementation of evolutionary algorithms. It is intended to be used by individual researchers and students in the expanding field of evolutionary computation.
With Chromatic Graph Theory, Second Edition, the authors present various fundamentals of graph theory that lie outside of graph colorings, including basic terminology and results, trees and connectivity, Eulerian and Hamiltonian graphs, matchings and factorizations, and graph embeddings. Readers will see that the authors accomplished the primary goal of this textbook, which is to introduce graph theory with a coloring theme and to look at graph colorings in various ways. The textbook also covers vertex colorings and bounds for the chromatic number, vertex colorings of graphs embedded on surfaces, and a variety of restricted vertex colorings. The authors also describe edge colorings, monochromatic and rainbow edge colorings, complete vertex colorings, several distinguishing vertex and edge colorings. Features of the Second Edition: The book can be used for a first course in graph theory as well as a graduate course The primary topic in the book is graph coloring The book begins with an introduction to graph theory so assumes no previous course The authors are the most widely-published team on graph theory Many new examples and exercises enhance the new edition
Representation Theory of Symmetric Groups is the most up-to-date abstract algebra book on the subject of symmetric groups and representation theory. Utilizing new research and results, this book can be studied from a combinatorial, algorithmic or algebraic viewpoint. This book is an excellent way of introducing today's students to representation theory of the symmetric groups, namely classical theory. From there, the book explains how the theory can be extended to other related combinatorial algebras like the Iwahori-Hecke algebra. In a clear and concise manner, the author presents the case that most calculations on symmetric group can be performed by utilizing appropriate algebras of functions. Thus, the book explains how some Hopf algebras (symmetric functions and generalizations) can be used to encode most of the combinatorial properties of the representations of symmetric groups. Overall, the book is an innovative introduction to representation theory of symmetric groups for graduate students and researchers seeking new ways of thought.
Probability as an Alternative to Boolean LogicWhile logic is the mathematical foundation of rational reasoning and the fundamental principle of computing, it is restricted to problems where information is both complete and certain. However, many real-world problems, from financial investments to email filtering, are incomplete or uncertain in nature. Probability theory and Bayesian computing together provide an alternative framework to deal with incomplete and uncertain data. Decision-Making Tools and Methods for Incomplete and Uncertain DataEmphasizing probability as an alternative to Boolean logic, Bayesian Programming covers new methods to build probabilistic programs for real-world applications. Written by the team who designed and implemented an efficient probabilistic inference engine to interpret Bayesian programs, the book offers many Python examples that are also available on a supplementary website together with an interpreter that allows readers to experiment with this new approach to programming. Principles and Modeling Only requiring a basic foundation in mathematics, the first two parts of the book present a new methodology for building subjective probabilistic models. The authors introduce the principles of Bayesian programming and discuss good practices for probabilistic modeling. Numerous simple examples highlight the application of Bayesian modeling in different fields. Formalism and AlgorithmsThe third part synthesizes existing work on Bayesian inference algorithms since an efficient Bayesian inference engine is needed to automate the probabilistic calculus in Bayesian programs. Many bibliographic references are included for readers who would like more details on the formalism of Bayesian programming, the main probabilistic models, general purpose algorithms for Bayesian inference, and learning problems. FAQsAlong with a glossary, the fourth part contains answers to frequently asked questions. The authors compare Bayesian programming and possibility theories, discuss the computational complexity of Bayesian inference, cover the irreducibility of incompleteness, and address the subjectivist versus objectivist epistemology of probability. The First Steps toward a Bayesian ComputerA new modeling methodology, new inference algorithms, new programming languages, and new hardware are all needed to create a complete Bayesian computing framework. Focusing on the methodology and algorithms, this book describes the first steps toward reaching that goal. It encourages readers to explore emerging areas, such as bio-inspired computing, and develop new programming languages and hardware architectures.
Provides detailed introduction to Internet of Healthcare Things (IoHT) and its applications Reviews underlying sensor and hardware technologies Includes recent advances in the IoHT such as remote healthcare monitoring and wearable devices Explores applications of Data Analytics/Data Mining in IoHT, including data management and data governance Focusses on regulatory and compliance issues in IoHT
Crossing Numbers of Graphs is the first book devoted to the crossing number, an increasingly popular object of study with surprising connections. The field has matured into a large body of work, which includes identifiable core results and techniques. The book presents a wide variety of ideas and techniques in topological graph theory, discrete geometry, and computer science. The first part of the text deals with traditional crossing number, crossing number values, crossing lemma, related parameters, computational complexity, and algorithms. The second part includes the rich history of alternative crossing numbers, the rectilinear crossing number, the pair crossing number, and the independent odd crossing number.It also includes applications of the crossing number outside topological graph theory. Aimed at graduate students and professionals in both mathematics and computer science The first book of its kind devoted to the topic Authored by a noted authority in crossing numbers
Algorithms and Applications for Academic Search, Recommendation and Quantitative Association Rule Mining presents novel algorithms for academic search, recommendation and association rule mining that have been developed and optimized for different commercial as well as academic purpose systems. Along with the design and implementation of algorithms, a major part of the work presented in the book involves the development of new systems both for commercial as well as for academic use. In the first part of the book the author introduces a novel hierarchical heuristic scheme for re-ranking academic publications retrieved from standard digital libraries. The scheme is based on the hierarchical combination of a custom implementation of the term frequency heuristic, a time-depreciated citation score and a graph-theoretic computed score that relates the paper's index terms with each other. In order to evaluate the performance of the introduced algorithms, a meta-search engine has been designed and developed that submits user queries to standard digital repositories of academic publications and re-ranks the top-n results using the introduced hierarchical heuristic scheme. In the second part of the book the design of novel recommendation algorithms with application in different types of e-commerce systems are described. The newly introduced algorithms are a part of a developed Movie Recommendation system, the first such system to be commercially deployed in Greece by a major Triple Play services provider. The initial version of the system uses a novel hybrid recommender (user, item and content based) and provides daily recommendations to all active subscribers of the provider (currently more than 30,000). The recommenders that we are presenting are hybrid by nature, using an ensemble configuration of different content, user as well as item-based recommenders in order to provide more accurate recommendation results. The final part of the book presents the design of a quantitative association rule mining algorithm. Quantitative association rules refer to a special type of association rules of the form that antecedent implies consequent consisting of a set of numerical or quantitative attributes. The introduced mining algorithm processes a specific number of user histories in order to generate a set of association rules with a minimally required support and confidence value. The generated rules show strong relationships that exist between the consequent and the antecedent of each rule, representing different items that have been consumed at specific price levels. This research book will be of appeal to researchers, graduate students, professionals, engineers and computer programmers.
A Concise Introduction to Programming in Python, Second Edition provides a hands-on and accessible introduction to writing software in Python, with no prior programming experience required. The Second Edition was thoroughly reorganized and rewritten based on classroom experience to incorporate: A spiral approach, starting with turtle graphics, and then revisiting concepts in greater depth using numeric, textual, and image data Clear, concise explanations written for beginning students, emphasizing core principles A variety of accessible examples, focusing on key concepts Diagrams to help visualize new concepts New sections on recursion and exception handling, as well as an earlier introduction of lists, based on instructor feedback The text offers sections designed for approximately one class period each, and proceeds gradually from procedural to object-oriented design. Examples, exercises, and projects are included from diverse application domains, including finance, biology, image processing, and textual analysis. It also includes a brief "How-To" sections that introduce optional topics students may be interested in exploring. The text is written to be read, making it a good fit in flipped classrooms. Designed for either classroom use or self-study, all example programs and solutions to odd-numbered exercises (except for projects) are available at: http://www.central.edu/go/conciseintro/.
This book presents a consolidated survey of the vibrant field of research known as the theory of semi-feasible algorithms. This research stream perfectly showcases the richness of, and contrasts between, the central notions of complexity: running time, nonuniform complexity, lowness, and NP-hardness. Research into semi-feasible computation has already developed a rich set of tools, yet is young enough to have an abundance of fresh, open issues. Being essentially self-contained, the book requires neither great mathematical maturity nor an extensive background in computational complexity theory or in computer science in general. Newcomers are introduced to the field systematically and guided to the frontiers of current research. Researchers already active in the field will appreciate the book as a valuable source of reference.
* Provides simple, conceptual descriptions of everyday technologies * Includes clear examples and diagrams that demonstrate the principles and techniques, not just a "how-to" punch list * Covers advanced topics for readers who want to dive into the deep end of the technology pool * Avoids jargon-where terminology does appear, the text will provide clear, concise definitions
The field of evolutionary computation is expanding dramatically, fueled by the vast investment that reflects the value of applying its techniques. Culling material from the Handbook of Evolutionary Computation, Evolutionary Computation 1: Basic Algorithms and Operators contains up-to-date information on algorithms and operators used in evolutionary computing. This volume discusses the basic ideas that underlie the main paradigms of evolutionary algorithms, evolution strategies, evolutionary programming, and genetic programming. It is intended to be used by individual researchers, teachers, and students working and studying in this expanding field.
Machine Learning: Theory and Practice provides an introduction to the most popular methods in machine learning. The book covers regression including regularization, tree-based methods including Random Forests and Boosted Trees, Artificial Neural Networks including Convolutional Neural Networks (CNNs), reinforcement learning, and unsupervised learning focused on clustering. Topics are introduced in a conceptual manner along with necessary mathematical details. The explanations are lucid, illustrated with figures and examples. For each machine learning method discussed, the book presents appropriate libraries in the R programming language along with programming examples. Features: Provides an easy-to-read presentation of commonly used machine learning algorithms in a manner suitable for advanced undergraduate or beginning graduate students, and mathematically and/or programming-oriented individuals who want to learn machine learning on their own. Covers mathematical details of the machine learning algorithms discussed to ensure firm understanding, enabling further exploration Presents worked out suitable programming examples, thus ensuring conceptual, theoretical and practical understanding of the machine learning methods. This book is aimed primarily at introducing essential topics in Machine Learning to advanced undergraduates and beginning graduate students. The number of topics has been kept deliberately small so that it can all be covered in a semester or a quarter. The topics are covered in depth, within limits of what can be taught in a short period of time. Thus, the book can provide foundations that will empower a student to read advanced books and research papers.
The second edition of this popular book presents the theory of graphs from an algorithmic viewpoint. The authors present the graph theory in a rigorous, but informal style and cover most of the main areas of graph theory. The ideas of surface topology are presented from an intuitive point of view. We have also included a discussion on linear programming that emphasizes problems in graph theory. The text is suitable for students in computer science or mathematics programs.
A friendly introduction to the most useful algorithms written in simple, intuitive English The revised and updated second edition of Essential Algorithms, offers an accessible introduction to computer algorithms. The book contains a description of important classical algorithms and explains when each is appropriate. The author shows how to analyze algorithms in order to understand their behavior and teaches techniques that the can be used to create new algorithms to meet future needs. The text includes useful algorithms such as: methods for manipulating common data structures, advanced data structures, network algorithms, and numerical algorithms. It also offers a variety of general problem-solving techniques. In addition to describing algorithms and approaches, the author offers details on how to analyze the performance of algorithms. The book is filled with exercises that can be used to explore ways to modify the algorithms in order to apply them to new situations. This updated edition of Essential Algorithms Contains explanations of algorithms in simple terms, rather than complicated math Steps through powerful algorithms that can be used to solve difficult programming problems Helps prepare for programming job interviews that typically include algorithmic questions Offers methods can be applied to any programming language Includes exercises and solutions useful to both professionals and students Provides code examples updated and written in Python and C# Essential Algorithms has been updated and revised and offers professionals and students a hands-on guide to analyzing algorithms as well as the techniques and applications. The book also includes a collection of questions that may appear in a job interview. The book's website will include reference implementations in Python and C# (which can be easily applied to Java and C++).
This textbook is a second edition of Evolutionary Algorithms for Solving Multi-Objective Problems, significantly expanded and adapted for the classroom. The various features of multi-objective evolutionary algorithms are presented here in an innovative and student-friendly fashion, incorporating state-of-the-art research. The book disseminates the application of evolutionary algorithm techniques to a variety of practical problems. It contains exhaustive appendices, index and bibliography and links to a complete set of teaching tutorials, exercises and solutions.
This book covers algorithmic and hardware implementation techniques to enable embedded deep learning. The authors describe synergetic design approaches on the application-, algorithmic-, computer architecture-, and circuit-level that will help in achieving the goal of reducing the computational cost of deep learning algorithms. The impact of these techniques is displayed in four silicon prototypes for embedded deep learning. Gives a wide overview of a series of effective solutions for energy-efficient neural networks on battery constrained wearable devices; Discusses the optimization of neural networks for embedded deployment on all levels of the design hierarchy - applications, algorithms, hardware architectures, and circuits - supported by real silicon prototypes; Elaborates on how to design efficient Convolutional Neural Network processors, exploiting parallelism and data-reuse, sparse operations, and low-precision computations; Supports the introduced theory and design concepts by four real silicon prototypes. The physical realization's implementation and achieved performances are discussed elaborately to illustrated and highlight the introduced cross-layer design concepts.
Avoiding heavy mathematics and lengthy programming details, Digital Image Processing: An Algorithmic Approach with MATLAB (R) presents an easy methodology for learning the fundamentals of image processing. The book applies the algorithms using MATLAB (R), without bogging down students with syntactical and debugging issues. One chapter can typically be completed per week, with each chapter divided into three sections. The first section presents theoretical topics in a very simple and basic style with generic language and mathematics. The second section explains the theoretical concepts using flowcharts to streamline the concepts and to form a foundation for students to code in any programming language. The final section supplies MATLAB codes for reproducing the figures presented in the chapter. Programming-based exercises at the end of each chapter facilitate the learning of underlying concepts through practice. This textbook equips undergraduate students in computer engineering and science with an essential understanding of digital image processing. It will also help them comprehend more advanced topics and sophisticated mathematical material in later courses. A color insert is included in the text while various instructor resources are available on the author's website.
The Boolean network (BN) is a mathematical model of genetic networks and other biological networks. Although extensive studies have been done on BNs from a viewpoint of complex systems, not so many studies have been undertaken from a computational viewpoint. This book presents rigorous algorithmic results on important computational problems on BNs, which include inference of a BN, detection of singleton and periodic attractors in a BN, and control of a BN. This book also presents algorithmic results on fundamental computational problems on probabilistic Boolean networks and a Boolean model of metabolic networks. Although most contents of the book are based on the work by the author and collaborators, other important computational results and techniques are also reviewed or explained. |
![]() ![]() You may like...
Python Programming for Computations…
Computer Language
Hardcover
|