![]() |
![]() |
Your cart is empty |
||
Books > Computing & IT > Computer programming > Algorithms & procedures
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.
The twenty-first century has seen a breathtaking expansion of statistical methodology, both in scope and influence. 'Data science' and 'machine learning' have become familiar terms in the news, as statistical methods are brought to bear upon the enormous data sets of modern science and commerce. How did we get here? And where are we going? How does it all fit together? Now in paperback and fortified with exercises, this book delivers a concentrated course in modern statistical thinking. Beginning with classical inferential theories - Bayesian, frequentist, Fisherian - individual chapters take up a series of influential topics: survival analysis, logistic regression, empirical Bayes, the jackknife and bootstrap, random forests, neural networks, Markov Chain Monte Carlo, inference after model selection, and dozens more. The distinctly modern approach integrates methodology and algorithms with statistical inference. Each chapter ends with class-tested exercises, and the book concludes with speculation on the future direction of statistics and data science.
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
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 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.
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.
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.
From finance to artificial intelligence, genetic algorithms are a powerful tool with a wide array of applications. But you don't need an exotic new language or framework to get started; you can learn about genetic algorithms in a language you're already familiar with. Join us for an in-depth look at the algorithms, techniques, and methods that go into writing a genetic algorithm. From introductory problems to real-world applications, you'll learn the underlying principles of problem solving using genetic algorithms. Evolutionary algorithms are a unique and often overlooked subset of machine learning and artificial intelligence. Because of this, most of the available resources are outdated or too academic in nature, and none of them are made with Elixir programmers in mind. Start from the ground up with genetic algorithms in a language you are familiar with. Discover the power of genetic algorithms through simple solutions to challenging problems. Use Elixir features to write genetic algorithms that are concise and idiomatic. Learn the complete life cycle of solving a problem using genetic algorithms. Understand the different techniques and fine-tuning required to solve a wide array of problems. Plan, test, analyze, and visualize your genetic algorithms with real-world applications. Open your eyes to a unique and powerful field - without having to learn a new language or framework. What You Need: You'll need a macOS, Windows, or Linux distribution with an up-to-date Elixir installation.
An Easy-to-Use Research Tool for Algorithm Testing and Development Before the SeqAn project, there was clearly a lack of available implementations in sequence analysis, even for standard tasks. Implementations of needed algorithmic components were either unavailable or hard to access in third-party monolithic software products. Addressing these concerns, the developers of SeqAn created a comprehensive, easy-to-use, open source C++ library of efficient algorithms and data structures for the analysis of biological sequences. Written by the founders of this project, Biological Sequence Analysis Using the SeqAn C++ Library covers the SeqAn library, its documentation, and the supporting infrastructure. The first part of the book describes the general library design. It introduces biological sequence analysis problems, discusses the benefit of using software libraries, summarizes the design principles and goals of SeqAn, details the main programming techniques used in SeqAn, and demonstrates the application of these techniques in various examples. Focusing on the components provided by SeqAn, the second part explores basic functionality, sequence data structures, alignments, pattern and motif searching, string indices, and graphs. The last part illustrates applications of SeqAn to genome alignment, consensus sequence in assembly projects, suffix array construction, and more. This handy book describes a user-friendly library of efficient data types and algorithms for sequence analysis in computational biology. SeqAn enables not only the implementation of new algorithms, but also the sound analysis and comparison of existing algorithms. Visit SeqAn for more information.
Full of practical examples, Introduction to Scheduling presents the basic concepts and methods, fundamental results, and recent developments of scheduling theory. With contributions from highly respected experts, it provides self-contained, easy-to-follow, yet rigorous presentations of the material. The book first classifies scheduling problems and their complexity and then presents examples that demonstrate successful techniques for the design of efficient approximation algorithms. It also discusses classical problems, such as the famous makespan minimization problem, as well as more recent advances, such as energy-efficient scheduling algorithms. After focusing on job scheduling problems that encompass independent and possibly parallel jobs, the text moves on to a practical application of cyclic scheduling for the synthesis of embedded systems. It also proves that efficient schedules can be derived in the context of steady-state scheduling. Subsequent chapters discuss scheduling large and computer-intensive applications on parallel resources, illustrate different approaches of multi-objective scheduling, and show how to compare the performance of stochastic task-resource systems. The final chapter assesses the impact of platform models on scheduling techniques. From the basics to advanced topics and platform models, this volume provides a thorough introduction to the field. It reviews classical methods, explores more contemporary models, and shows how the techniques and algorithms are used in practice.
Algorithms and Theory of Computation Handbook, Second Edition: General Concepts and Techniques provides an up-to-date compendium of fundamental computer science topics and techniques. It also illustrates how the topics and techniques come together to deliver efficient solutions to important practical problems. Along with updating and revising many of the existing chapters, this second edition contains four new chapters that cover external memory and parameterized algorithms as well as computational number theory and algorithmic coding theory. This best-selling handbook continues to help computer professionals and engineers find significant information on various algorithmic topics. The expert contributors clearly define the terminology, present basic results and techniques, and offer a number of current references to the in-depth literature. They also provide a glimpse of the major research issues concerning the relevant topics.
This user-oriented guide describes state-of-the-art methods for nonlinear equations and shows, via algorithms in pseudocode and Julia with several examples, how to choose an appropriate iterative method for a given problem and write an efficient solver or apply one written by others. A sequel to the author's Solving Nonlinear Equations with Newton's Methods (SIAM, 2003), this book contains new material on pseudo-transient continuation, mixed-precision solvers, and Anderson acceleration. It is supported by a Julia package and a suite of Jupyter notebooks and includes examples of nonlinear problems from many disciplines. This book is will be useful to researchers who solve nonlinear equations, students in numerical analysis, and the Julia community.
Philipp Meisen introduces a model, a query language, and a similarity measure enabling users to analyze time interval data. The introduced tools are combined to design and realize an information system. The presented system is capable of performing analytical tasks (avoiding any type of summarizability problems), providing insights, and visualizing results processing millions of intervals within milliseconds using an intuitive SQL-based query language. The heart of the solution is based on several bitmap-based indexes, which enable the system to handle huge amounts of time interval data.
The term "stringology" is a popular nickname for text algorithms, or algorithms on strings. This book deals with the most basic algorithms in the area. Most of them can be viewed as "algorithmic jewels" and deserve reader-friendly presentation. One of the main aims of the book is to present several of the most celebrated algorithms in a simple way by omitting obscuring details and separating algorithmic structure from combinatorial theoretical background. The book reflects the relationships between applications of text-algorithmic techniques and the classification of algorithms according to the measures of complexity considered. The text can be viewed as a parade of algorithms in which the main purpose is to discuss the foundations of the algorithms and their interconnections. One can partition the algorithmic problems discussed into practical and theoretical problems. Certainly, string matching and data compression are in the former class, while most problems related to symmetries and repetitions in texts are in the latter. However, all the problems are interesting from an algorithmic point of view and enable the reader to appreciate the importance of combinatorics on words as a tool in the design of efficient text algorithms.In most textbooks on algorithms and data structures, the presentation of efficient algorithms on words is quite short as compared to issues in graph theory, sorting, searching, and some other areas. At the same time, there are many presentations of interesting algorithms on words accessible only in journals and in a form directed mainly at specialists. This book fills the gap in the book literature on algorithms on words, and brings together the many results presently dispersed in the masses of journal articles. The presentation is reader-friendly; many examples and about two hundred figures illustrate nicely the behaviour of otherwise very complex algorithms.
Designed for introductory parallel computing courses at the advanced undergraduate or beginning graduate level, Elements of Parallel Computing presents the fundamental concepts of parallel computing not from the point of view of hardware, but from a more abstract view of algorithmic and implementation patterns. The aim is to facilitate the teaching of parallel programming by surveying some key algorithmic structures and programming models, together with an abstract representation of the underlying hardware. The presentation is friendly and informal. The content of the book is language neutral, using pseudocode that represents common programming language models. The first five chapters present core concepts in parallel computing. SIMD, shared memory, and distributed memory machine models are covered, along with a brief discussion of what their execution models look like. The book also discusses decomposition as a fundamental activity in parallel algorithmic design, starting with a naive example, and continuing with a discussion of some key algorithmic structures. Important programming models are presented in depth, as well as important concepts of performance analysis, including work-depth analysis of task graphs, communication analysis of distributed memory algorithms, key performance metrics, and a discussion of barriers to obtaining good performance. The second part of the book presents three case studies that reinforce the concepts of the earlier chapters. One feature of these chapters is to contrast different solutions to the same problem, using select problems that aren't discussed frequently in parallel computing textbooks. They include the Single Source Shortest Path Problem, the Eikonal equation, and a classical computational geometry problem: computation of the two-dimensional convex hull. After presenting the problem and sequential algorithms, each chapter first discusses the sources of parallelism then surveys parallel algorithms.
Applicable to any problem that requires a finite number of solutions, finite state-based models (also called finite state machines or finite state automata) have found wide use in various areas of computer science and engineering. Handbook of Finite State Based Models and Applications provides a complete collection of introductory materials on finite state theories, algorithms, and the latest domain applications. For beginners, the book is a handy reference for quickly looking up model details. For more experienced researchers, it is suitable as a source of in-depth study in this area. The book first introduces the fundamentals of automata theory, including regular expressions, as well as widely used automata, such as transducers, tree automata, quantum automata, and timed automata. It then presents algorithms for the minimization and incremental construction of finite automata and describes Esterel, an automata-based synchronous programming language for embedded system software development. Moving on to applications, the book explores regular path queries on graph-structured data, timed automata in model checking security protocols, pattern matching, compiler design, and XML processing. It also covers other finite state-based modeling approaches and applications, including Petri nets, statecharts, temporal logic, and UML state machine diagrams.
This book provides in-depth and wide-ranging analyses of the emergence, and subsequent ubiquity, of algorithms in diverse realms of social life. The plurality of Algorithmic Cultures emphasizes: 1) algorithms' increasing importance in the formation of new epistemic and organizational paradigms; and 2) the multifaceted analyses of algorithms across an increasing number of research fields. The authors in this volume address the complex interrelations between social groups and algorithms in the construction of meaning and social interaction. The contributors highlight the performative dimensions of algorithms by exposing the dynamic processes through which algorithms - themselves the product of a specific approach to the world - frame reality, while at the same time organizing how people think about society. With contributions from leading experts from Media Studies, Social Studies of Science and Technology, Cultural and Media Sociology from Canada, France, Germany, UK and the USA, this volume presents cutting edge empirical and conceptual research that includes case studies on social media platforms, gaming, financial trading and mobile security infrastructures.
"If you want to learn some of the deeper explanations of deep learning and PyTorch then read this book!" - Tiklu Ganguly Journey through the theory and practice of modern deep learning, and apply innovative techniques to solve everyday data problems. In Inside Deep Learning, you will learn how to: Implement deep learning with PyTorch Select the right deep learning components Train and evaluate a deep learning model Fine tune deep learning models to maximize performance Understand deep learning terminology Adapt existing PyTorch code to solve new problems Inside Deep Learning is an accessible guide to implementing deep learning with the PyTorch framework. It demystifies complex deep learning concepts and teaches you to understand the vocabulary of deep learning so you can keep pace in a rapidly evolving field. No detail is skipped-you'll dive into math, theory, and practical applications. Everything is clearly explained in plain English. about the technology Deep learning isn't just for big tech companies and academics. Anyone who needs to find meaningful insights and patterns in their data can benefit from these practical techniques! The unique ability for your systems to learn by example makes deep learning widely applicable across industries and use-cases, from filtering out spam to driving cars. about the book Inside Deep Learning is a fast-paced beginners' guide to solving common technical problems with deep learning. Written for everyday developers, there are no complex mathematical proofs or unnecessary academic theory. You'll learn how deep learning works through plain language, annotated code and equations as you work through dozens of instantly useful PyTorch examples. As you go, you'll build a French-English translator that works on the same principles as professional machine translation and discover cutting-edge techniques just emerging from the latest research. Best of all, every deep learning solution in this book can run in less than fifteen minutes using free GPU hardware! about the reader For Python programmers with basic machine learning skills. about the author Edward Raff is a Chief Scientist at Booz Allen Hamilton, and the author of the JSAT machine learning library. His research includes deep learning, malware detection, reproducibility in ML, fairness/bias, and high performance computing. He is also a visiting professor at the University of Maryland, Baltimore County and teaches deep learning in the Data Science department. Dr Raff has over 40 peer reviewed publications, three best paper awards, and has presented at numerous major conferences.
These contributions, written by the foremost international researchers and practitioners of Genetic Programming (GP), explore the synergy between theoretical and empirical results on real-world problems, producing a comprehensive view of the state of the art in GP. Topics in this volume include: gene expression regulation, novel genetic models for glaucoma, inheritable epigenetics, combinators in genetic programming, sequential symbolic regression, system dynamics, sliding window symbolic regression, large feature problems, alignment in the error space, HUMIE winners, Boolean multiplexer function, and highly distributed genetic programming systems. Application areas include chemical process control, circuit design, financial data mining and bioinformatics. Readers will discover large-scale, real-world applications of GP to a variety of problem domains via in-depth presentations of the latest and most significant results. |
![]() ![]() You may like...
|