Algorithms and data structures Books
Penguin Books Ltd The Master Algorithm
Book Synopsis''Pedro Domingos demystifies machine learning and shows how wondrous and exciting the future will be'' Walter Isaacson, author of Steve JobsSociety is changing, one learning algorithm at a time, from search engines to online dating, personalized medicine to predicting the stock market. But learning algorithms are not just about Big Data - these algorithms take raw data and make it useful by creating more algorithms. This is something new under the sun: a technology that builds itself. In The Master Algorithm, Pedro Domingos reveals how machine learning is remaking business, politics, science and war. And he takes us on an awe-inspiring quest to find ''The Master Algorithm'' - a universal learner capable of deriving all knowledge from data.Trade ReviewPedro Domingos demystifies machine learning and shows how wondrous and exciting the future will be -- Walter Isaacson, author of Steve Jobs and The InnovatorsMachine learning is a fascinating world never before glimpsed by outsiders. Pedro Domingos initiates you to the mysterious languages spoken by its five tribes, and invites you to join in his plan to unite them, creating the most powerful technology our civilization has ever seen -- Sebastian Seung, Professor, Princeton, and author of 'Connectome'Machine learning, known in commercial use as predictive analytics, is changing the world. This riveting, far-reaching, and inspiring book introduces the deep scientific concepts to even non-technical readers, and yet also satisfies experts with a fresh, profound perspective that reveals the most promising research directions. It's a rare gem indeed -- Eric Siegel, founder of Predictive Analytics World and author of 'Predictive Analytics: The Power to Predict Who Will Click, Buy, Lie, or Die'With terms like 'Machine Learning' and 'Big Data' regularly making headlines, there is no shortage of hype-filled business books on the subject. There are also textbooks that are too technical to be accessible. For those in the middle-from executives to college students-this is the ideal book, showing how and why things really work without the heavy math. Unlike other books that proclaim a bright future, this one actually gives you what you need to understand the changes that are coming -- Peter Norvig, Director of Research, Google and coauthor of 'Artificial Intelligence: A Modern Approach'[The Master Algorithm] does a good job of examining the field's five main techniques...The subject is meaty and the author ... has a knack for introducing concepts at the right moment * Economist *Machine learning is the single most transformative technology that will shape our lives over the next fifteen years. This book is a must-read-a bold and beautifully written new framework for looking into the future -- Geoffrey Moore, author of 'Crossing the Chasm'This is an incredibly important and useful book. Machine learning is already critical to your life and work, and will only become more so. Finally, Pedro Domingos has written about it in a clear and understandable fashion -- Thomas H. Davenport, Distinguished Professor, Babson College and author of 'Competing on Analytics and Big Data @ Work'Starting with the audacious claim that all knowledge can be derived from data by a single 'master algorithm,' Domingos takes the reader on a fast-paced journey through the brave new world of machine learning. Writing breezily but with deep authority, Domingos is the perfect tour guide from whom you will learn everything you need to know about this exciting field, and a surprising amount about science and philosophy as well -- Duncan Watts, Principal Researcher, Microsoft Research, and author of 'Six Degrees and Everything Is Obvious *Once You Know the Answer'A delightful book by one of the leading experts in the field. If you wonder how AI will change your life, read this book -- Sebastian Thrun, Research Professor, Stanford, Google Fellow and Inventor of the Self-Driving CarAn exhilarating venture into groundbreaking computer science * Booklist (starred review) *Domingos writes with verve and passion, and the book has a strong narrative * New Scientist *Pedro Domingos is a man with a quest, and a hypothesis, which is likely - one day - to change the world . . . Domingos is a genial and amusing guide . . . This is a highly inclusive book, aimed at a wide range of readers from the merely curious to those who might be interested in pursuing a career in the field . . . Descriptions and discussions are presented with a commendable lack of jargon and the examples are clear and accessible -- John Gilbey * Times Higher Education *Wonderfully erudite, humorous, and easy to read. * KDNuggets *The Master Algorithm does a good job of examining the field's five main techniques...The subject is meaty and the author...has a knack for introducing concepts at the right moment * Economist *
£10.44
Oxford University Press Machine Learning for Signal Processing
Book SynopsisDescribes in detail the fundamental mathematics and algorithms of machine learning (an example of artificial intelligence) and signal processing, two of the most important and exciting technologies in the modern information economy. Builds up concepts gradually so that the ideas and algorithms can be implemented in practical software applications.Trade ReviewThis book provides an excellent pathway for gaining first-class expertise in machine learning. It provides both the technical background that explains why certain approaches, but not others, are best practice in real world problems, and a framework for how to think about and approach new problems. I highly recommend it for people with a signal processing background who are seeking to become an expert in machine learning. * Alex 'Sandy' Pentland, Toshiba Professor of Media Arts and Sciences, Massachusetts Institute of Technology, *Over the past decade in signal processing, machine learning has gone from a disparate research field known only to people working on topics such as speech and image processing, to permeating all aspects of it. With this book, Prof. Little has taken an important step in unifying machine learning and signal processing. As a whole, this book covers many topics, new and old, that are important in their own right and equips the reader with a broader perspective than traditional signal processing textbooks. In particular, I would highlight the combination of statistical modeling, convex optimization, and graphs as particularly potent. Machine learning and signal processing are no longer separate, and there is no doubt in my mind that this is the way to teach signal processing in the future. * Mads Christensen, Full Professor in Audio Processing, Aalborg University, Denmark, *Table of Contents1: Mathematical Foundations 2: Optimization 3: Random Sampling 4: Statistical Modelling and Inference 5: Probabalistic Graphical Models 6: Statistical Machine Learning 7: Linear-Gaussian Systems and Signal Processing 8: Discrete Signals: Sampling, Quantization and Coding 9: Nonlinear and Non-Gaussian Signal Processing 10: Nonparametric Bayesian Machine Learning and Signal Processing
£72.20
Oxford University Press Poems That Solve Puzzles
Book SynopsisAlgorithms are the hidden methods that computers apply to process information and make decisions. Nowadays, our lives are run by algorithms. They determine what news we see. They influence which products we buy. They suggest our dating partners. They may even be determining the outcome of national elections. They are creating, and destroying, entire industries. Despite mounting concerns, few know what algorithms are, how they work, or who created them.Poems that Solve Puzzles tells the story of algorithms from their ancient origins to the present day and beyond. The book introduces readers to the inventors and inspirational events behind the genesis of the world''s most important algorithms. Professor Chris Bleakley recounts tales of ancient lost inscriptions, Victorian steam-driven contraptions, top secret military projects, penniless academics, hippy dreamers, tech billionaires, superhuman artificial intelligences, cryptocurrencies, and quantum computing. Along the way, the book explains, with the aid of clear examples and illustrations, how the most influential algorithms work.Compelling and impactful, Poems that Solve Puzzles tells the story of how algorithms came to revolutionise our world.Trade ReviewPoems that Solve Puzzles is a thorough investigation into the history of algorithms...It is an enjoyable read for anyone curious about how algorithms developed and were implemented throughout history.' * Notices of the American Mathematical Society *Poems that Solve Puzzles: The History and Science of Algorithms is an informative and entertaining book. It is appropriate for a wide swath of readers, from people who are interested in learning about what "blockchain" is without having to do any math to students and instructors in the mathematical sciences who need more examples of how these academic topics make important contributions to the technologically complex world we live in. * Ron Buckmire, Occidental College, Mathematical Association of America *Table of Contents0: Introduction 1: Ancient Algorithms 2: Ever Expanding Circles 3: Computer Dreams 4: Weather Forecasts 5: Artificial Intelligence Emerges 6: Needles in Haystacks 7: The Internet 8: Googling the Web 9: Facebook and Friends 10: America's Favourite Quiz Show 11: Mimicking the Brain 12: Superhuman Intelligence 13: Next Steps
£31.34
Oxford University Press DataDriven Modeling Scientific Computation
Book SynopsisCombining scientific computing methods and algorithms with modern data analysis techniques, including basic applications of compressive sensing and machine learning, this book develops techniques that allow for the integration of the dynamics of complex systems and big data. MATLAB is used throughout for mathematical solution strategies.Trade ReviewThe book allows methods for dealing with large data to be explained in a logical process suitable for both undergraduate and post-graduate students ... With sport performance analysis evolving into deal with big data, the book forms a key bridge between mathematics and sport science * John Francis, University of Worcester *Table of ContentsI BASIC COMPUTATIONS AND VISUALIZATION; II DIFFERENTIAL AND PARTIAL DIFFERENTIAL EQUATIONS; III COMPUTATIONAL METHODS FOR DATA ANALYSIS; IV SCIENTIFIC APPLICATIONS
£44.64
MIT Press Ltd RealWorld Algorithms A Beginners Guide
Book SynopsisAn introduction to algorithms for readers with no background in advanced mathematics or computer science, emphasizing examples and real-world problems.Algorithms are what we do in order not to have to do something. Algorithms consist of instructions to carry out tasks—usually dull, repetitive ones. Starting from simple building blocks, computer algorithms enable machines to recognize and produce speech, translate texts, categorize and summarize documents, describe images, and predict the weather. A task that would take hours can be completed in virtually no time by using a few lines of code in a modern scripting program. This book offers an introduction to algorithms through the real-world problems they solve. The algorithms are presented in pseudocode and can readily be implemented in a computer language.The book presents algorithms simply and accessibly, without overwhelming readers or insulting their intelligence. Readers should be comfortable with mathematica
£40.85
Princeton University Press Trading at the Speed of Light
Book SynopsisTrade Review"Winner of the Bronze Medal in Business Technology, Axiom Business Book Awards""I loved this book. . . . Trading at the Speed of Light is an amazing, detailed account of why material reality matters for virtual outcomes, and conversely, in the financial markets. Everybody with the slightest interest in modern finance should read it."---Diane Coyle, Enlightened Economist
£18.00
Princeton University Press The Inglorious Years
Book SynopsisTrade Review"A welcome addition to the growing literature on the digital economy and change." * Choice *"Stimulating." * Paradigm Explorer *
£22.50
Cambridge University Press Probabilistic Numerics
Book SynopsisProbabilistic numerical computation formalises the connection between machine learning and applied mathematics. Numerical algorithms approximate intractable quantities from computable ones. They estimate integrals from evaluations of the integrand, or the path of a dynamical system described by differential equations from evaluations of the vector field. In other words, they infer a latent quantity from data. This book shows that it is thus formally possible to think of computational routines as learning machines, and to use the notion of Bayesian inference to build more flexible, efficient, or customised algorithms for computation. The text caters for Masters'' and PhD students, as well as postgraduate researchers in artificial intelligence, computer science, statistics, and applied mathematics. Extensive background material is provided along with a wealth of figures, worked examples, and exercises (with solutions) to develop intuition.Trade Review'Computational methods for solving numerical problems lie at the heart of many of the technological advances in science and engineering over the last five decades, and underpin fields as diverse as artificial intelligence, climate modelling, and epidemiology. This impressive text rethinks numerical problems through the lens of probabilistic inference and decision making. This fresh perspective opens up a new chapter in this field, and suggests new and highly efficient methods. A landmark achievement!' Zoubin Ghahramani, University of Cambridge'This beautiful book is both timely and important with deep roots in powerful early exposition in numerical analysis. In this stunning and comprehensive new book, early developments from Kac and Larkin have been comprehensively built upon, formalised and extended by including modern day machine learning, numerical analysis and the formal Bayesian statistical methodology. Probabilistic Numerical methodology is of enormous importance for this age of data-centric science and Hennig, Osborne and Kersting are to be congratulated in providing us with this definitive volume.' Mark Girolami, University of Cambridge and The Alan Turing Institute'Numerical analysis is at the very heart of digital computing: every result of a computation on a digital computer is a only finite-precision representation of the true mathematical quantity where the precision is the tradeoff between computation time and accuracy. This book presents an in-depth overview of both the past and present of the newly emerging area of probabilistic numerics, where recent advances in probabilistic machine learning are used to develop principled improvements which are both faster and more accurate than classical numerical analysis algorithms. A must-read for every algorithm developer and practitioner in optimization!' Ralf Herbrich, Hasso Plattner Institute'Probabilistic Numerics spans from the intellectual fireworks of the dawn of a new field to its practical algorithmic consequences. It is precise but accessible and rich in wide-ranging, principled examples. This convergence of ideas from diverse fields in lucid style is the very fabric of good science.' Carl Edward Rasmussen, University of Cambridge'An important read for anyone who has thought about uncertainty in numerical methods; an essential read for anyone who hasn't …' John Cunningham, Columbia University'This is a rare example of a textbook that essentially founds a new field, re-casting numerics on stronger, more general foundations. A tour de force.' David Duvenaud, University of Toronto'The idea of applying probabilistic inference to the problem of numerical analysis must appear bold, possibly outrageous, even to an entrenched Bayesian statistician. Many in machine learning are now familiar with the application of Bayesian methods to problems that involve randomness, say, the estimation of quantities from noisy data. But to apply the 'calculus of uncertainty' to unknown mathematical facts, where the uncertainty arises only from our lack of knowledge, opens up a universe of new possibilities. This elegant idea is at the core of Probabilistic Numerics, and the authors succeed in demonstrating its potential to transform the way we think about computation itself. And that's not even considering what would happen if we were to apply probabilistic numerics to the numerical problems that arise from probabilistic numerics itself!' Thore Graepel, Senior Vice President, Altos Labs'… the machine learning background of the authors comes through clearly in the book … I thoroughly recommend it.' Chris J. Oates, SIAM ReviewTable of ContentsIntroduction; 1. Mathematical background; 2. Integration; 3. Linear algebra; 4. Local optimisation; 5. Global optimisation; 6. Solving ordinary differential equations; 7. The frontier; Solutions to exercises; References; Index.
£52.24
Cambridge University Press Game Theory Basics
Book SynopsisGame theory is the science of interaction. This textbook, derived from courses taught by the author and developed over several years, is a comprehensive, straightforward introduction to the mathematics of non-cooperative games. It teaches what every game theorist should know: the important ideas and results on strategies, game trees, utility theory, imperfect information, and Nash equilibrium. The proofs of these results, in particular existence of an equilibrium via fixed points, and an elegant direct proof of the minimax theorem for zero-sum games, are presented in a self-contained, accessible way. This is complemented by chapters on combinatorial games like Go; and, it has introductions to algorithmic game theory, traffic games, and the geometry of two-player games. This detailed and lively text requires minimal mathematical background and includes many examples, exercises, and pictures. It is suitable for self-study or introductory courses in mathematics, computer science, or econoTrade Review'This looks like a fine introduction to game theory, inter alia emphasizing methods for computing equilibria, and mathematical aspects in general. Especially worthy of note is the chapter devoted to correlated equilibria, a topic of central importance not normally covered in introductory texts.' Robert Aumann, The Hebrew University of Jerusalem'This book is a delightful adventure into the mathematics of game theory. Without any heavy apparatus, it lets us into the secrets of a whole range of exciting results that are usually thought too advanced for the common herd. It is not only undergraduate students who will benefit from reading this book. Professional game theorists will find it very useful too.' Ken Binmore, University College London'Bernhard von Stengel's book will enable students to become intimately familiar with game theoretic reasoning, which is mathematical by nature. The text comes at the right time: Game theory has become so popular in economics and political science that teachers could be tempted to put the cart before the horse. Here, the basic noncooperative game models are studied gradually and thoroughly, in a unified way, while providing the algorithms that can be used to solve interactive decision problems.' Françoise Forges, Université Paris-Dauphine'This is a rather reader-friendly, engaging, and polished superior creation. It illustrates, explains, motivates every definition, theorem, proof. Interesting and unique choice of topics, such as a delightful introductory chapter on combinatorial games. Highly recommended.' Aviezri Fraenkel, Weizmann Institute of Science, Israel'A masterful presentation of mathematical game theory in all its beauty and elegance, from basic notions to advanced techniques. It fills the gaps left by the many textbooks that cover concepts and applications, but devote only the bare minimum to the mathematical tools and insights, without which game theory would not have become the success it is today.' Sergiu Hart, The Hebrew University of Jerusalem'Game Theory is the child of mathematicians, as this textbook demonstrates through self-contained, elegant proofs of all seminal Theorems. The lively and rigorous exposition of carefully selected models, such as bargaining, combinatorial and congestion games (the latter two rarely the stuff of textbooks) explains its success far beyond mathematics. To reach deep results on both sides of the theory, Bernhard von Stengel's marvellous learning tool uses uncompromising, yet accessible mathematics and chooses examples to maximal effect.' Hervé Moulin, University of Glasgow'This will become a classic textbook on non-cooperative game theory. It is very useful for mathematicians, computer scientists, and economic theorists. Each chapter has a clear learning structure, with motivating examples and a central main theorem. The author's long teaching experience and expertise in game theory is apparent on every page.' Abraham Neyman, The Hebrew University of Jerusalem'Attractively covers of a lot of important material, in particular for students of mathematics and computer science.' Eva Tardos, Cornell University'This book is a gem. The presentation is clear and well structured, often with nice geometric illustrations. It moves step by step from basics to powerful concepts, methods and results. It is ideal for students of mathematics, computer science and economics who are curious about what game theory is and how it can be used.' Jörgen Weibull, Stockholm School of Economics'This excellent text develops with clarity and precision the basic concepts and mathematical tools of game theory, enhanced by well-motivated examples, exercises, and practical applications.' Robert Wilson, Stanford University'An exceptionally lucid introduction to the fundamentals of game theory, enlivened by examples that are sure to captivate students.' Peyton Young, University of Oxford'This is a rigorous, yet accessible introduction to mathematical non-cooperative game theory. In addition to the coverage of the basic concepts and results, it includes special and advanced topics and applications usually not contained in game theory textbooks, such as combinatorial games, congestion games and inspection games. The special emphasis on algorithmic and computational techniques make this textbook, just like its author, a valuable bridge between game theory and computer sciences.' Shmuel Zamir, The Hebrew University of JerusalemTable of Contents1. Nim and Combinatorial Games; 2. Congestion Games; 3. Games in Strategic Form; 4. Game Trees with Perfect Information; 5. Expected Utility; 6. Mixed Equilibrium; 7. Brouwer's Fixed-Point Theorem; 8. Zero-Sum Games; 9. Geometry of Equilibria in Bimatrix Games; 10. Game Trees with Imperfect Information; 11. Bargaining; 12. Correlated Equilibrium.
£35.14
Cambridge University Press Control Systems and Reinforcement Learning
Book SynopsisA high school student can create deep Q-learning code to control her robot, without any understanding of the meaning of ''deep'' or ''Q'', or why the code sometimes fails. This book is designed to explain the science behind reinforcement learning and optimal control in a way that is accessible to students with a background in calculus and matrix algebra. A unique focus is algorithm design to obtain the fastest possible speed of convergence for learning algorithms, along with insight into why reinforcement learning sometimes fails. Advanced stochastic process theory is avoided at the start by substituting random exploration with more intuitive deterministic probing for learning. Once these ideas are understood, it is not difficult to master techniques rooted in stochastic control. These topics are covered in the second part of the book, starting with Markov chain theory and ending with a fresh look at actor-critic methods for reinforcement learning.Trade Review'Control Systems and Reinforcement Learning is a densely packed book with a vivid, conversational style. It speaks both to computer scientists interested in learning about the tools and techniques of control engineers and to control engineers who want to learn about the unique challenges posed by reinforcement learning and how to address these challenges. The author, a world-class researcher in control and probability theory, is not afraid of strong and perhaps controversial opinions, making the book entertaining and attractive for open-minded readers. Everyone interested in the "why" and "how" of RL will use this gem of a book for many years to come.' Csaba Szepesvári, Canada CIFAR AI Chair, University of Alberta, and Head of the Foundations Team at DeepMind'This book is a wild ride, from the elements of control through to bleeding-edge topics in reinforcement learning. Aimed at graduate students and very good undergraduates who are willing to invest some effort, the book is a lively read and an important contribution.' Shane G. Henderson, Charles W. Lake, Jr. Chair in Productivity, Cornell University'Reinforcement learning, now the de facto workhorse powering most AI-based algorithms, has deep connections with optimal control and dynamic programing. Meyn explores these connections in a marvelous manner and uses them to develop fast, reliable iterative algorithms for solving RL problems. This excellent, timely book from a leading expert on stochastic optimal control and approximation theory is a must-read for all practitioners in this active research area.' Panagiotis Tsiotras, David and Andrew Lewis Chair and Professor, Guggenheim School of Aerospace Engineering, Georgia Institute of TechnologyTable of Contents1. Introduction; Part I. Fundamentals Without Noise: 2. Control crash course; 3. Optimal control; 4. ODE methods for algorithm design; 5. Value function approximations; Part II. Reinforcement Learning and Stochastic Control: 6. Markov chains; 7. Stochastic control; 8. Stochastic approximation; 9. Temporal difference methods; 10. Setting the stage, return of the actors; A. Mathematical background; B. Markov decision processes; C. Partial observations and belief states; References; Glossary of Symbols and Acronyms; Index.
£47.49
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG Expert Oracle RAC Performance Diagnostics and
Book SynopsisExpert Oracle RAC Performance Diagnostics and Tuning provides comprehensive coverage of the features, technology and principles for testing and tuning RAC databases. The book takes a deep look at optimizing RAC databases by following a methodical approach based on scientific analysis rather than using a speculative approach, twisting and turning knobs and gambling on the system.The book starts with the basic concepts of tuning methodology, capacity planning, and architecture. Author Murali Vallath then dissects the various tiers of the testing implementation, including the operating system, the network, the application, the storage, the instance, the database, and the grid infrastructure. He also introduces tools for performance optimization and thoroughly covers each aspect of the tuning process, using many real-world examples, analyses, and solutions from the field that provide you with a solid, practical, and replicable approach to tuning a RAC enTable of Contents1. Methodology2. Capacity Planning and Architecture3. Testing for Availability4. Testing for Scalability5. Real Application Testing6. Tools and Utilities7. SQL Tuning8. Parallel Query Tuning9. Tuning the Database10. Tuning Recovery11. Tuning Oracle Net12. Tuning Storage Subsystem13. Tuning Global Cache14. Tuning the Cluster Interconnect15. Optimization of Distributed Workload16. Tuning the Oracle Clusterware17. Enqueues, Waits and Latches18. Problem DiagnosticsA. The SQL Scripts Used in This BookBibliography
£52.24
APress Complete Guide to Open Source Big Data Stack
Book SynopsisThis book describes the creation of an actual generic open source big data stack, which is an integrated stack of big data components--each of which serves a specific function like storage, resource management, or queueing. Each component has a big data heritage and community to support it. It can support big data in that it is able to scale, and it is a distributed and robust system.In the Complete Guide to Open Source Big Data Stack, Mike Frampton begins by creating a private cloud and then by installing and examining Apache Brooklyn. After that he will use each chapter to introduce one piece of the big data stacksharing how to source the software and then how to install it. He will then show how it works by simple example. Step by step and chapter by chapter, Frampton will create a real big data stack. The goal of this book is to show how a big data stack might be created and what components might be used. It attempts to do this with currently available ApaTable of ContentsChapter 1: The Big Data Stack Overview.- Chapter 2: Cloud Storage.- Chapter 3: Apache Brooklyn.- Chapter 4: Apache Mesos.- Chapter 5: Stack Storage Options.- Chapter 6: Processing.- Chapter 7: Streaming.- Chapter 8: Frameworks.- Chapter 9: Visualization.- Chapter 10: The Big Data Stack.-
£35.99
APress The Ultimate Guide to Functions in Power Query
Book SynopsisThis book is a complete guide to using functions in Power Query and is designed to help users of all skill levels learn and master its various functions. The Ultimate Guide to Functions in Power Query begins with an introduction to Power Query and an overview of the different types of functions available, along with detailed explanations of how to use each of them. You'll see how to leverage power functions to process and transform large datasets from various sources and learn advanced techniques such as creating custom functions and using conditional statements. The book also covers best practices for using functions, including tips on how to optimize query performance and troubleshoot common errors. Using practical example applications, Author Omid Motamedisedeh demonstrates how to optimize your data processing workflows, saving time and boosting productivity. By the end of the book, readers will have a deep understanding of Power Query functions and be ableto apply their knowledTable of ContentsChapter 1: Introduction to Power Query.- Chapter 2: Data Types.- Chapter 3: Number Functions.- Chapter 4: Text Functions.- Chapter 5: Date and Time Functions.- Chapter 6: List Functions.- Chapter 7: Record Functions.- Chapter 8: Table Functions.- Chapter 9: Extracting from Data Sources.- Chapter 10: Other Functions.
£35.99
APress Modern X86 Assembly Language Programming
Book SynopsisChapter 1 X86-Core Architecture.- Chapter 2 X86-64 Core Programming (Part 1).- Chapter 3 X86-64 Core Programming (Part 2).- Chapter 4 X86-64 Core Programming (Part 3).- Chapter 5 AVX Programming - Scalar Floating-Point.- Chapter 6 Run-Time Calling Conventions.- Chapter 7 Introduction to X86-AVX SIMD Programming.- Chapter 8 AVX Programming Packed Integers.- Chapter 9 AVX Programming Packed Floating Point.- Chapter 10 AVX2 Programming Packed Integers.- Chapter 11 AVX2 Programming Packed Floating Point (Part 1).- Chapter 12 AVX2 Programming Packed Floating Point (Part 2).- Chapter 13 AVX-512 Programming Packed Integers.- Chapter 14 AVX-512 Programming Packed Floating Point (Part 1).- Chapter 15 AVX-512 Programming Packed Floating Point (Part 2).- Chapter 16 Advanced Assembly Language Programming.- Chapter 17 Assembly Language Optimization and Development Guidelines. Appendix A Source CoTable of ContentsChapter 1 – X86-Core Architecture Chapter Goal: Explains the core architecture of an x86-64 processor. Topics discussed include fundamental data types, registers, status flags, memory addressing modes, and other important architectural subjects. Understanding of this material is necessary for the reader to successfully comprehend the book’s subsequent chapters.Historical overviewData typesFundamental data typesNumerical data typesSIMD data typesMiscellaneous data typesStringsBit fields and bit stringsX86-64 processor internal architectureOverviewGeneral-purpose registersInstruction pointerRFLAGSFloating-point and SIMD registersMXCSR RegisterInstruction operandsMemory addressingCondition codesDifferences between x86-32 and x86-64Chapter 2 – X86-64 Core Programming (Part 1) Chapter Goal: Introduces the fundamentals of x86-64 assembly language programming. The programming examples illustrate essential x86-64 assembly language programming concepts including integer arithmetic, bitwise logical operations, and shift instructions. This chapter also explains basic assembler usage and x86-64 assembly language syntax.Assembler basicsInstruction syntaxAssembler directivesModern X86 Assembly Language Programming, Third Edition Page 2 of 7Daniel Kusswurm – F:\ModX86Asm3E\Proposal\ModernX86Asm3e_Outline (proposal).docxMASM vs. NASMSource code overviewFile and function naming conventionsInteger arithmeticInteger (32-bit) addition and subtraction Bitwise logical operations Shift operations Integer (64-bit) addition and subtraction Integer multiplication and division Chapter 3 – X86-64 Core Programming (Part 2) Chapter Goal: Explores additional core x86-64 assembly language programming concepts. Topics discussed include advanced integer arithmetic, memory addressing modes, and condition codes. This chapter also covers important x86-64 assembly language programming concepts including proper stack use and for-loops.Simple stack arguments Mixed-type integer arithmetic Memory addressing Condition codes Assembly language for-loops Chapter 4 – X86-64 Core Programming (Part 3) Chapter 4 explains how to exercise core x86-64 assembly language programming data constructs including arrays and structures. It also describes how to use common x86-64 string processing instructions.Arrays1D integer array arithmetic calculations 1D integer array arithmetic calculations using multiple arrays2D integer arrays StringsOverview of x86 string instructionsCounting characters String/array compare String/array copy String/array reversal Assembly language structures Chapter 5 – Scalar Floating-Point Chapter 5 teaches the reader how to perform scalar floating-point arithmetic and other operations using assembly language. It also outlines the calling convention requirements for scalar floating-point arguments and return values.Floating-point programming conceptsSingle-precision floating-point arithmeticTemperature conversions Cone volume/surface area calculation Double-precision floating-point arithmeticSphere volume/surface area calculation Floating-point compares and conversionsFloating-point compares using VUCOMIS[S|D] Floating-point compares using VCMPS[S|D] Floating-point conversions Floating-point arraysArray mean/standard deviation calculation Chapter 6 – Assembly Language Calling Conventions Chapter 6 formally defines the calling run-time conventions for x86-64 assembly language functions. The first section explains the requirements for Windows and Visual C++ while the second section covers Linux and GNU C++.Calling convention requirements for Windows and Visual C++Stack frames (Ch06_01)Using non-volatile general-purpose registers Using non-volatile SIMD registers Calling external functions Calling convention requirements for Linux and GNU C++Stack arguments Using non-volatile general-purpose registers Calling external functions Chapter 7 – Advanced Vector Extensions Chapter 7 introduces Advanced Vector Extensions (AVX). It begins with a discussion of AVX architecture and related topics. Chapter 7 also explains elementary SIMD programming concepts. Understanding of this material is necessary for the reader to comprehend the AVX, AVX2, and AVX-512 programming examples in subsequent chapters.X86-AVX architecture overviewAVXAVX2AVX-512Merge masking and zero maskingEmbedded broadcastsInstruction level roundingSIMD programing conceptsBasic arithmeticWraparound vs. saturated arithmeticPack floating-pointPack integerProgramming differences between x86-SSE and x86-AVXChapter 8 – AVX Programming – Packed Integers Chapter 8 spotlights packed integer arithmetic and other operations using AVX. It also describes how to code packed integer calculating functions using arrays and the AVX instruction set. Integer arithmeticAddition and subtraction Multiplication Bitwise logical operations Arithmetic and logical shifts Integer array algorithmsPixel minimum and maximum Pixel mean Chapter 9 – AVX Programming – Packed Floating Point Chapter 9 demonstrates packed floating-point arithmetic and other operations using AVX. This chapter also explains how to use AVX instructions to perform calculations with floating-point arrays and matrices.Floating-point arithmeticBasic arithmetic operations Compares Conversions Floating-point arraysArray mean and standard deviation Array square roots and compares Floating-point matricesMatrix column means Chapter 10 – AVX2 Programming – Packed Integers Chapter 10 describes AVX2 integer programming using x86-64 assembly language. This chapter also elucidates the coding of common image processing algorithms using the AVX2 instruction set.Integer arithmeticBasic operations Size promotions Image processingPixel clipping RGB to grayscale Pixel conversions Image histogram Chapter 11 – AVX2 Programming – Packed Floating Point (Part 1) Chapter 11 teaches the reader how to enhance the performance of universal floating-point calculations using x86-64 assembly language and the AVX2 instruction set. The reader will also learn how to accelerate these types of calculations using fused-multiply-add (FMA) instructions.Floating-Point ArraysLeast squares with FMA Floating-Point MatricesMatrix multiplication F32 Matrix multiplication F64 Matrix (4x4) multiplication F32 Matrix (4x4) multiplication F64 Matrix (4x4) vector multiplication F32 Matrix (4x4) vector multiplication F64 Covariance matrix F64 Chapter 12 – AVX2 Programming – Packed Floating Point (Part 2) Chapter 12 is a continuation of the previous chapter. It explicates the coding of advanced algorithms including matrix inversion and convolutions using AVX2 and FMA instructions.Advanced Matrix OperationsMatrix inverse F32 Matrix inverse F64 Signal Processing1D convolution F32 variable-size kernel 1D convolution F64 variable-size kernel 1D convolution F32 fixed-size kernel 1D convolution F64 fixed-size kernel Chapter 13 – AVX-512 Programming – Packed Integers Chapter 13 highlights packed integer arithmetic and other operations using x86-64 assembly language and AVX-512. It also discusses how to code frequently used image processing algorithms using the AVX-512 instruction set.Integer ArithmeticAddition and subtraction Masked addition and subtraction Image ProcessingPixel clipping Image statistics Image histogram Chapter 14 – AVX-512 Programming – Packed Floating Point (Part 1) Chapter 14 explains basic operations using packed floating-point operands and the AVX-512 instruction set. It also teaches the reader how to code common floating-point algorithms using x86-64 assembly language and AVX-512.Floating-point arithmeticFloating-point arithmetic Floating-point compares Floating-point arithmetic and mask registers Floating-point matricesCovariance matrix Matrix multiplication F32 Matrix multiplication F64 Matrix (4x4) vector multiplication F32 Matrix (4x4) vector multiplication F64 (Ch14_08)Chapter 15 – AVX-512 Programming – Packed Floating Point (Part 2) Chapter 15 is a continuation of the previous chapter. It illustrates the coding of advanced algorithms using AVX-512 and FMA instructions.Signal Processing1D convolution F32 variable-size kernel 1D convolution F64 variable-size kernel 1D convolution F32 fixed-size kernel 1D convolution F64 fixed-size kernel Chapter 16 – Advanced Instructions and Optimization Guidelines Chapter 16 demonstrates the use of advanced x86-64 assembly language instructions. It also discusses guidelines that the reader can exploit to improve the performance of their assembly language code.Advanced instructionsCPUID instruction – processor information CPUID instruction – AVX, AVX2, FMA, and AVX-512 detection Integer non-temporal memory loads and stores Floating-point non-temporal memory stores SIMD text processing Processor microarchitecture overviewX86-64 assembly language optimization guidelinesAppendix A – Source Code and Development Tools Appendix A describes how to download, install, and execute the source code. It also includes some brief usage notes about the software development tools used to create the source code examples.Source codeDownload instructionsSetup and configurationExecuting a source code exampleSoftware development tools for WindowsMicrosoft Visual StudioMASMSoftware development tools for LinuxGNU makeGNU C++ compilerNASMBenchmarking notesAppendix B – References and Additional Resources Appendix B contains a list of references that were consulted during the writing of this book. It also lists supplemental resources that the reader can consult for additional x86-64 assembly language programming information.X86-64 assembly language programming referencesAlgorithm referencesC++ referencesX86 processor software utilities and librariesAdditional resources
£49.49
Springer-Verlag New York Inc. An Introduction to Mathematical Cryptography
Book SynopsisPreface.- Introduction.- 1 An Introduction to Cryptography.- 2 Discrete Logarithms and Diffie-Hellman.- 3 Integer Factorization and RSA.- 4 Digital Signatures.- 5 Combinatorics, Probability, and Information Theory.- 6 Elliptic Curves and Cryptography.- 7 Lattices and Cryptography.- 8 Additional Topics in Cryptography.- List of Notation.- References.- Index.Trade Review“This book explains the mathematical foundations of public key cryptography in a mathematically correct and thorough way without omitting important practicalities. … I would like to emphasize that the book is very well written and quite clear. Topics are well motivated, and there are a good number of examples and nicely chosen exercises. To me, this book is still the first-choice introduction to public-key cryptography.” (Klaus Galensa, Computing Reviews, March, 2015)“This is a text for an upper undergraduate/lower graduate course in mathematical cryptography. … It is very well written and quite clear. Topics are well-motivated, and there are a good number of examples and nicely chosen exercises. … An instructor of a fairly sophisticated undergraduate course in cryptography who wants to emphasize public key cryptography should definitely take a look at this book.” (Mark Hunacek, MAA Reviews, October, 2014)Table of ContentsPreface.- Introduction.- 1 An Introduction to Cryptography.- 2 Discrete Logarithms and Diffie-Hellman.- 3 Integer Factorization and RSA.- 4 Digital Signatures.- 5 Combinatorics, Probability, and Information Theory.- 6 Elliptic Curves and Cryptography.- 7 Lattices and Cryptography.- 8 Additional Topics in Cryptography.- List of Notation.- References.- Index.
£56.69
Manning Publications Deep Learning with PyTorch
Book SynopsisEvery other day we hear about new ways to put deep learning to good use: improved medical imaging, accurate credit card fraud detection, long range weather forecasting, and more. PyTorch puts these superpowers in your hands, providing a comfortable Python experience that gets you started quickly and then grows with you as you, and your deep learning skills, become more sophisticated. Deep Learning with PyTorch teaches you how to implement deep learning algorithms with Python and PyTorch. This book takes you into a fascinating case study: building an algorithm capable of detecting malignant lung tumors using CT scans. As the authors guide you through this real example, you'll discover just how effective and fun PyTorch can be. Key features • Using the PyTorch tensor API • Understanding automatic differentiation in PyTorch • Training deep neural networks • Monitoring training and visualizing results • Interoperability with NumPy Audience Written for developers with some knowledge of Python as well as basic linear algebra skills. Some understanding of deep learning will be helpful, however no experience with PyTorch or other deep learning frameworks is required. About the technology PyTorch is a machine learning framework with a strong focus on deep neural networks. Because it emphasizes GPU-based acceleration, PyTorch performs exceptionally well on readily-available hardware and scales easily to larger systems. Eli Stevens has worked in Silicon Valley for the past 15 years as a software engineer, and the past 7 years as Chief Technical Officer of a startup making medical device software. Luca Antiga is co-founder and CEO of an AI engineering company located in Bergamo, Italy, and a regular contributor to PyTorch.
£35.99
Manning Publications Fighting Churn with Data
Book SynopsisChurn is the bane of any subscription business, such as content subscriptions, software as a service, and even ad-supported freemium apps. You can improve customer retention through product changes and targeted engagement campaigns based on data-driven interventions. This hands-on guide is packed with techniques for converting raw data into measurable metrics, testing hypotheses, and presenting findings that are easily understandable to non-technical decision makers. Don’t let your hard-won customers vanish from subscription services, taking their money with them. In Fighting Churn with Data you’ll learn powerful data-driven techniques to maximize customer retention and minimize actions that cause them to stop engaging or unsubscribe altogether. • Identifying processes suited to machine learning • Using machine learning to automate back office processes • Seven everyday business process projects • Using open source and cloud-based tools • Case studies for machine learning decision making For readers with basic data analysis skills, including Python and SQL.
£47.99
Manning Publications How to Lead in Data Science
Book SynopsisTo lead a data science team, you need to expertly articulate technology roadmaps, support a data-driven culture, and plan a data strategy that drives a competitive business plan. In this practical guide, you'll learn leadership techniques the authors have developed building multiple high-performance data teams. In How to Lead in Data Science you'll master techniques for leading data science at every seniority level, from heading up a single project to overseeing a whole company's data strategy. You'll find advice on plotting your long-term career advancement, as well as quick wins you can put into practice right away. Throughout, carefully crafted assessments and interview scenarios encourage introspection, reveal personal blind spots, and show development areas to help advance your career. Leading a data science team takes more than the typical set of business management skills. You need specific know-how to articulate technology roadmaps, support a data-driven culture, and plan a data strategy that drives a competitive business plan. Whether you're looking to manage your team better or work towards a seat at your company's top leadership table, this book will show you how. Trade Review“Improveleadership skills, irrespective of the domain you are in.” Vishwesh RaviShrimali “Whether you are new to managing, new to data science, or just want tobe a better advocate for your data team there are a lot of tips to improve yourpractice.” MichaelPetrey “This is a book that surpasses the boundaries of mining data and coding,but warns you about not forgetting them in the effort to successfully lead datascience teams.” JesúsJuárez-Guerrero “Excellent book. Covers a large complex topic in a clear and understandableway.” GaryBake “Excellent and ambitious book that provides actionable insight on how tolead in data science. Filled with insightful vignettes, anecdotes, and casestudies to bring life and relevance to the frameworks and discussion.” MarcParadis
£36.09
Manning Publications Graph Algorithms for Data Science
Book SynopsisGraphs are the natural way to understand connected data. This book explores the most important algorithms and techniques for graphs in data science, with practical examples and concrete advice on implementation and deployment. In Graph Algorithms for Data Science you will learn: Labeled-property graph modeling Constructing a graph from structured data such as CSV or SQL NLP techniques to construct a graph from unstructured data Cypher query language syntax to manipulate data and extract insights Social network analysis algorithms like PageRank and community detection How to translate graph structure to a ML model input with node embedding models Using graph features in node classification and link prediction workflows Graph Algorithms for Data Science is a hands-on guide to working with graph-based data in applications like machine learning, fraud detection, and business data analysis. It's filled with fascinating and fun projects, demonstrating the ins-and-outs of graphs. You'll gain practical skills by analyzing Twitter, building graphs with NLP techniques, and much more. You don't need any graph experience to start benefiting from this insightful guide. These powerful graph algorithms are explained in clear, jargon-free text and illustrations that makes them easy to apply to your own projects. about the technology Graphs reveal the relationships in your data. Tracking these interlinking connections reveals new insights and influences and lets you analyze each data point as part of a larger whole. This interconnected data is perfect for machine learning, as well as analyzing social networks, communities, and even product recommendations. about the book Graph Algorithms for Data Science teaches you how to construct graphs from both structured and unstructured data. You'll learn how the flexible Cypher query language can be used to easily manipulate graph structures, and extract amazing insights. The book explores common and useful graph algorithms like PageRank and community detection/clustering algorithms. Each new algorithm you learn is instantly put into action to complete a hands-on data project, including modeling a social network! Finally, you'll learn how to utilize graphs to upgrade your machine learning, including utilizing node embedding models and graph neural networks.Trade Review'The book covers topics in-depth but is easy to understand. Though delving into theory, it doesn't lose its focus of being a more practical guide. ' Carl Yu 'A good starting point to getting started with network analysis and how to extract the essential information you need easily.' Andrea Paciolla 'A great introduction to how to use graphs and data they can provide.' Marcin SękTable of Contentstable of contents detailed TOC READ IN LIVEBOOK 1GRAPHS AND NETWORK SCIENCE: AN INTRODUCTION READ IN LIVEBOOK 2REPRESENTING NETWORK STRUCTURE - DESIGN YOUR FIRST GRAPH MODEL READ IN LIVEBOOK 3YOUR FIRST STEPS WITH THE CYPHER QUERY LANGUAGE READ IN LIVEBOOK 4CYPHER AGGREGATIONS AND SOCIAL NETWORK ANALYSIS 5 INFERRING NETWORKS AND MONOPARTITE PROJECTIONS 6 CONSTRUCT A GRAPH USING NLP TECHNIQUES 7 NODE EMBEDDINGS AND CLASSIFICATION 8 IMPROVE DOCUMENT CLASSIFICATION WITH GRAPH NEURAL NETWORKS 9 PREDICT NEW CONNECTIONS 10 KNOWLEDGE GRAPH COMPLETION READ IN LIVEBOOK APPENDIX A: ADJACENCY MATRIX
£39.09
Manning Publications Statistics Playbook
Learn statistics by analysing professional basketball data! Statistics Slam Dunk is an action-packed book that will help you build your skills in exploratory data analysis by digging into the fascinating world of NBA games and player stats using the R language. This textbook will upgrade your R data science skills by taking on practical analysis challenges based on NBA game and player data. You will take on the challenge of wrangling messy data to drill on the skills that will make you the star player on any data team. And just like in the real world, you will get no clean pre-packaged datasets in this book. You will develop a toolbox of R data skills including: Reading and writing data Installing and loading packages Transforming, tidying, and wrangling data Applying best-in-class exploratory data analysis techniques Creating compelling visualizations Developing supervised and unsupervised machine learning algorithms Execute hypothesis tests, including t-tests and chi-square tests for independence Compute expected values, Gini coefficients, and z-scores Is losing games on purpose a rational strategy? Which hustle statistics have an impact on wins and losses? Each chapter in this one-of-a-kind guide uses new data science techniques to reveal interesting insights like these. About the technology Amazing insights are hiding in raw data, and statistical analysis with R can help reveal them! R was built for data, and it supports modelling and statistical techniques including regression and classification models, time series forecasts, and clustering algorithms. And when you want to see your results, R's visualisations are stunning, with best-in-class plots and charts.
£42.39
BCS Learning & Development Limited Principles of Data Management: Facilitating
Book SynopsisData is a valuable corporate asset and its effective management is vital to an organisation’s success and survival. With this book you will learn to master the key principles of data management and use them to implement best practices in your organization. This professional guide covers all the key areas of data management, including database development and corporate data modelling. It is business-focused, providing the knowledge and techniques required to successfully implement the data management function. This fully updated new edition provides new chapters on the most important data topics such as big data, artificial intelligence, linked data and concept systems. Principles of Data Management is fully aligned with syllabus for the BCS Professional Certificate in Data Management Essentials, making this the go-to text to unlocking the value of your data. Ideal for business managers and all involved in the development of information systems as well as data management professionals Comprehensive and descriptive view of data management Suitable for all levels, from beginners to advanced learners Must-read for anyone involved in the development of systems to manage data Trade ReviewThis book is an excellent guide to understanding data management theory and techniques. It works at all levels: from beginner to advanced, and from reference source to the practicalities of implementation. I would highly recommend to anyone wanting to get to grips with data management, regardless of experience in the field. -- Ian Wallis, Managing Director, Data Strategists LtdKeith has developed a broad and thorough understanding of all aspects of data management over many years, so is without doubt one of the authorities on data management. This updated book includes reference to a number of new techniques as well as refining existing guidance on data modelling and database structures. Keith clearly explains both the importance of planning and analysis of databases and repositories and an explanation of key techniques to achieve this. A ‘must buy’ for the bookshelf of any data management practitioner. -- Julian Schwarzenbach, Chair of the BCS Data Management Specialist GroupThis book provides a comprehensive and descriptive view of data management within a database setting. This is a must read for anyone involved in the development of systems to manage data. This book is as useful as it is interesting. It covers everything you need to know about getting the most out of your data management processes and architecture. -- Ian Rush, Data & Process Advantage LtdTable of ContentsPart 1: Preliminaries Chapter 1 Data and the enterprise Chapter 2 Databases and their development Chapter 3 What is data management? Part 2: Data Administration Chapter 4 Corporate data modelling Chapter 5 Data definition and naming Chapter 6 Metadata Chapter 7 Data quality Chapter 8 Data accessibility Chapter 9 Master data management Part 3: Database and Repository Administration Chapter 10 Database administration Chapter 11 Repository administration Part 4: The Data Management Environment Chapter 12 The use of packaged application software Chapter 13 Distributed data and databases Chapter 14 Business intelligence Chapter 15 Object orientation Chapter 16 Multimedia Chapter 17 Integrating data and web technology Chapter 18 Linked data Chapter 19 Concept systems Chapter 20 Big data and artificial intelligence Appendices Appendix A Comparison of data modelling notations Appendix B Generic data models Appendix C HTML and XML Appendix D Techniques and skills for data management Appendix E Data strategy Appendix F International standards for data management Appendix G The BCS Data Management Essentials syllabus
£33.24
HarperCollins Publishers Algorithms to Live By The Computer Science of
Book SynopsisA fascinating exploration of how computer algorithms can be applied to our everyday lives.In this dazzlingly interdisciplinary work, acclaimed author Brian Christian and cognitive scientist Tom Griffiths show us how the simple, precise algorithms used by computers can also untangle very human questions. Modern life is constrained by limited space and time, limits that give rise to a particular set of problems. What should we do, or leave undone, in a day or a lifetime? How much messiness should we accept? The authors explain how to have better hunches and when to leave things to chance, how to deal with overwhelming choices and how best to connect with others.From finding a spouse to finding a parking spot, from organizing one''s inbox to understanding the workings of human memory, Algorithms To Live By is full of practical takeaways to help you solve common decision-making problems and illuminate the workings of the human mind.Trade Review‘I’ve been waiting for a book to come along that merges computational models with human psychology – and Christian and Griffiths have succeeded beyond all expectations. This is a wonderful book, written so that anyone can understand the computer science that runs our world – and more importantly, what it means to our lives’ David Eagleman, author of ‘Sum: Tales from the Afterlives’ ‘Compelling and entertaining, Algorithms to Live By is packed with practical advice about how to use time, space, and effort more efficiently. And it’s a fascinating exploration of the workings of computer science and the human mind. Whether you want to optimize your to-do list, organize your closet, or understand human memory, this is a great read’ ‘Charles Duhigg, author of The Power of Habit’ ‘A truly beautiful exploration through math, computer science and philosophy of some of the most ordinary, yet most important dilemmas any of us is likely to face. Filled with humour and wisdom, this is a bible with a brain’ Aarathi Prasad
£10.44
Pearson Education (US) Data Structures Algorithms in Python
Book SynopsisTable of Contents1 Overview . . . 1 What Are Data Structures and Algorithms?. . . . . . . . . . . . . . . . . . . . . . . 1 Overview of Data Structures.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Overview of Algorithms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Some Definitions.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Programming in Python.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Object-Oriented Programming.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Questions.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Experiments.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2 Arrays . . . 29 The Array Visualization Tool.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Using Python Lists to Implement the Array Class.. . . . . . . . . . . . . . . . . 37 The OrderedArray Visualization Tool.. . . . . . . . . . . . . . . . . . . . . . . . . . 47 Binary Search.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Python Code for an OrderedArray Class.. . . . . . . . . . . . . . . . . . . . . . . . 52 Logarithms.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Storing Objects.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Big O Notation.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Why Not Use Arrays for Everything?.. . . . . . . . . . . . . . . . . . . . . . . . . . 69 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Questions.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Experiments.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Programming Projects.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 3 Simple Sorting . . . 75 How Would You Do It?.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Bubble Sort. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Selection Sort.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Insertion Sort.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Comparing the Simple Sorts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Questions.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Experiments.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Programming Projects.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 4 Stacks and Queues . . . 103 Different Structures for Different Use Cases.. . . . . . . . . . . . . . . . . . . . . 103 Stacks.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Queues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Priority Queues.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Parsing Arithmetic Expressions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 Questions.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 Experiments.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 Programming Projects.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 5 Linked Lists . . . 157 Links.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 The LinkedList Visualization Tool.. . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 A Simple Linked List.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 Double-Ended Lists.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 Linked List Efficiency.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 Abstract Data Types and Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 Ordered Lists.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 Doubly Linked Lists.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 Insertion and Deletion at the Ends.. . . . . . . . . . . . . . . . . . . . . . . 201 Insertion and Deletion in the Middle.. . . . . . . . . . . . . . . . . . . . . 204 Doubly Linked List as Basis for Deques.. . . . . . . . . . . . . . . . . . . . 208 Circular Lists.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 Iterators.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 Questions.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 Experiments.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 Programming Projects.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 6 Recursion . . . 229 Triangular Numbers.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 Factorials. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 Anagrams.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 A Recursive Binary Search.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 The Tower of Hanoi.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 Sorting with mergesort.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 Eliminating Recursion.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 Some Interesting Recursive Applications.. . . . . . . . . . . . . . . . . . . . . . . 275 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 Questions.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 Experiments.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 Programming Projects.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 7 Advanced Sorting . . . 285 Shellsort.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 Partitioning.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 Quicksort.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 Radix Sort.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 Timsort.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 Questions.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 Experiments.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 Programming Projects.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 8 Binary Trees . . . 335 Why Use Binary Trees?.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 Tree Terminology.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 An Analogy.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 How Do Binary Search Trees Work?.. . . . . . . . . . . . . . . . . . . . . . . . . . 341 Finding a Node.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346 Inserting a Node.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 Traversing the Tree.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353 Finding Minimum and Maximum Key Values. . . . . . . . . . . . . . . . . . . 365 Deleting a Node.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 The Efficiency of Binary Search Trees.. . . . . . . . . . . . . . . . . . . . . . . . . 375 Trees Represented as Arrays.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 Printing Trees.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 Duplicate Keys.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 The BinarySearchTreeTester.py Program. . . . . . . . . . . . . . . . . . . . . . . . 382 The Huffman Code.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393 Questions.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 Experiments.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396 Programming Projects.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 9 2-3-4 Trees and External Storage . . . 401 Introduction to 2-3-4 Trees.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401 The Tree234 Visualization Tool. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 Python Code for a 2-3-4 Tree.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412 Efficiency of 2-3-4 Trees.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430 2-3 Trees.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432 External Storage.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456 Questions.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458 Experiments.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459 Programming Projects.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460 10 AVL and Red-Black Trees 463 Our Approach to the Discussion.. . . 463 Balanced and Unbalanced Trees.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464 AVL Trees.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470 The Efficiency of AVL Trees.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486 Red-Black Trees.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487 Using the Red-Black Tree Visualization Tool.. . . . . . . . . . . . . . . . . . . . 489 Experimenting with the Visualization Tool.. . . . . . . . . . . . . . . . . . . . . 492 Rotations in Red-Black Trees.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 Inserting a New Node.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498 Deletion.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508 The Efficiency of Red-Black Trees.. . . . . . . . . . . . . . . . . . . . . . . . . . . . 509 2-3-4 Trees and Red-Black Trees.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510 Red-Black Tree Implementation.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515 Questions.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 Experiments.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520 Programming Projects.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 11 Hash Tables 525 Introduction to Hashing.. . . . . . . . . . . . . . . . . 526 Open Addressing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536 Separate Chaining.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565 Hash Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575 Hashing Efficiency.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581 Hashing and External Storage.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590 Questions.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592 Experiments.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594 Programming Projects.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595 12 Spatial Data Structures 597 Spatial Data.. . . . . .. . . . . . . . . . . . 597 Computing Distances Between Points.. . . . . . . . . . . . . . . . . . . . . . . . . 599 Circles and Bounding Boxes.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601 Searching Spatial Data.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611 Lists of Points.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612 Grids.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617 Quadtrees.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 633 Theoretical Performance and Optimizations.. . . . . . . . . . . . . . . . . . . . 656 Practical Considerations.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656 Further Extensions.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659 Questions.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661 Experiments.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 662 Programming Projects.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663 13 Heaps 665 Introduction to Heaps.. . . . . . . . . . . . . . . . . . . .. . . . . 666 The Heap Visualization Tool.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674 Python Code for Heaps.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677 A Tree-Based Heap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684 Heapsort.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 686 Order Statistics.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 700 Questions.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701 Experiments.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703 Programming Projects.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703 14 Graphs 705 Introduction to Graphs.. . . . . . . . . . . . . . . . . . . . . . . 705 Traversal and Search.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718 Minimum Spanning Trees.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734 Topological Sorting.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740 Connectivity in Directed Graphs.. . . . . . . . . . . . . . . . . . . . . . . . . . . . 753 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759 Questions.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 760 Experiments.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762 Programming Projects.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763 15 Weighted Graphs . . . 767 Minimum Spanning Tree with Weighted Graphs.. . . . . . . . . . . . . . . . . 767 The All-Pairs Shortest-Path Problem.. . . . . . . . . . . . . . . . . . . . . . . . . . 797 Efficiency.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 800 Intractable Problems.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 805 Questions.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 806 Experiments.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 808 Programming Projects.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 809 16 What to Use and Why 813 Analyzing the Problem.. . . . . . . . . . . 814 Foundational Data Structures.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 818 Special-Ordering Data Structures.. . . . . . . . . . . . . . . . . . . . . . . . . . . . 824 Sorting.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826 Specialty Data Structures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 828 External Storage.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 829 Onward. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 831 A Running the Visualizations . . . 833 B Further Reading . . . 841 C Answers to Questions . . . 845 9780134855684, TOC, 8/3/2022
£46.79
MIT Press Once Upon an Algorithm
Book Synopsis
£18.40
Pearson Education (US) Algorithms
Book SynopsisRobert Sedgewick has been a Professor of Computer Science at Princeton University since 1985, where he was the founding Chairman of the Department of Computer Science. He has held visiting research positions at Xerox PARC, Institute for Defense Analyses, and INRIA, and is member of the board of directors of Adobe Systems. Professor Sedgewick's research interests include analytic combinatorics, design and analysis of data structures and algorithms, and program visualization. His landmark book, Algorithms, now in its fourth edition, has appeared in numerous versions and languages over the past thirty years. In addition, with Kevin Wayne, he is the coauthor of the highly acclaimed textbook, Introduction to Programming in Java: An Interdisciplinary Approach (Addison-Wesley, 2008). Kevin Wayne is the Phillip Y. Goldman Senior Lecturer in Computer Science at Princeton University, where hTable of Contents Chapter 1: Fundamentals 1.1 Programming Model 1.2 Data Abstraction 1.3 Queues, Stacks, and Bags 1.4 Analysis of Algorithms 1.5 Case Study: Union-Find Chapter 2: Sorting 2.1 Elementary Sorts 2.1 Elementary Sorts 2.2 Mergesort 2.3 Quicksort 2.4 Priority Queues 2.5 Applications Chapter 3: Searching 3.1 Symbol Tables 3.1 Symbol Tables 3.2 Binary Search Trees 3.3 Balanced Search Trees 3.4 Hash Tables 3.5 Applications Chapter 4: Graphs 4.1 Undirected graphs 4.1 Undirected graphs 4.2 Directed graphs 4.3 Minimum Spanning Trees 4.4 Shortest Paths Chapter 5: Strings 5.1 String Sorts 5.1 String Sorts 5.2 Tries 5.3 Substring Search 5.4 Regular Expressions 5.5 Data Compression Context Systems Programming Systems Programming Scientific Computing Commercial Applications Operations Research Intractability Index
£63.17
Princeton University Press Trading at the Speed of Light
Book SynopsisTrade Review"Winner of the Bronze Medal in Business Technology, Axiom Business Book Awards""I loved this book. . . . Trading at the Speed of Light is an amazing, detailed account of why material reality matters for virtual outcomes, and conversely, in the financial markets. Everybody with the slightest interest in modern finance should read it."---Diane Coyle, Enlightened Economist
£29.75
John Wiley & Sons Inc Metaheuristic and Evolutionary Algorithms for
Book SynopsisA detailed review of a wide range of meta-heuristic and evolutionary algorithms in a systematic manner and how they relate to engineering optimization problems This book introduces the main metaheuristic algorithms and their applications in optimization. It describes 20 leading meta-heuristic and evolutionary algorithms and presents discussions and assessments of their performance in solving optimization problems from several fields of engineering. The book features clear and concise principles and presents detailed descriptions of leading methods such as the pattern search (PS) algorithm, the genetic algorithm (GA), the simulated annealing (SA) algorithm, the Tabu search (TS) algorithm, the ant colony optimization (ACO), and the particle swarm optimization (PSO) technique. Chapter 1 ofMeta-heuristic and Evolutionary Algorithms for Engineering Optimizationprovides an overview of optimization and defines it by presenting examples of optimization problems iTable of ContentsPreface xv About the Authors xvii List of Figures xix 1 Overview of Optimization 1 Summary 1 1.1 Optimization 1 1.1.1 Objective Function 2 1.1.2 Decision Variables 2 1.1.3 Solutions of an Optimization Problem 3 1.1.4 Decision Space 3 1.1.5 Constraints or Restrictions 3 1.1.6 State Variables 3 1.1.7 Local and Global Optima 4 1.1.8 Near-Optimal Solutions 5 1.1.9 Simulation 6 1.2 Examples of the Formulation of Various Engineering Optimization Problems 7 1.2.1 Mechanical Design 7 1.2.2 Structural Design 9 1.2.3 Electrical Engineering Optimization 10 1.2.4 Water Resources Optimization 11 1.2.5 Calibration of Hydrologic Models 13 1.3 Conclusion 15 2 Introduction to Meta-Heuristic and Evolutionary Algorithms 17 Summary 17 2.1 Searching the Decision Space for Optimal Solutions 17 2.2 Definition of Terms of Meta-Heuristic and Evolutionary Algorithms 21 2.2.1 Initial State 21 2.2.2 Iterations 21 2.2.3 Final State 21 2.2.4 Initial Data (Information) 21 2.2.5 Decision Variables 22 2.2.6 State Variables 23 2.2.7 Objective Function 23 2.2.8 Simulation Model 24 2.2.9 Constraints 24 2.2.10 Fitness Function 24 2.3 Principles of Meta-Heuristic and Evolutionary Algorithms 25 2.4 Classification of Meta-Heuristic and Evolutionary Algorithms 27 2.4.1 Nature-Inspired and Non-Nature-Inspired Algorithms 27 2.4.2 Population-Based and Single-Point Search Algorithms 28 2.4.3 Memory-Based and Memory-Less Algorithms 28 2.5 Meta-Heuristic and Evolutionary Algorithms in Discrete or Continuous Domains 28 2.6 Generating Random Values of the Decision Variables 29 2.7 Dealing with Constraints 29 2.7.1 Removal Method 30 2.7.2 Refinement Method 30 2.7.3 Penalty Functions 31 2.8 Fitness Function 33 2.9 Selection of Solutions in Each Iteration 33 2.10 Generating New Solutions 34 2.11 The Best Solution in Each Algorithmic Iteration 35 2.12 Termination Criteria 35 2.13 General Algorithm 36 2.14 Performance Evaluation of Meta-Heuristic and Evolutionary Algorithms 36 2.15 Search Strategies 39 2.16 Conclusion 41 References 41 3 Pattern Search 43 Summary 43 3.1 Introduction 43 3.2 Pattern Search (PS) Fundamentals 44 3.3 Generating an Initial Solution 47 3.4 Generating Trial Solutions 47 3.4.1 Exploratory Move 47 3.4.2 Pattern Move 49 3.5 Updating the Mesh Size 50 3.6 Termination Criteria 50 3.7 User-Defined Parameters of the PS 51 3.8 Pseudocode of the PS 51 3.9 Conclusion 52 References 52 4 Genetic Algorithm 53 Summary 53 4.1 Introduction 53 4.2 Mapping the Genetic Algorithm (GA) to Natural Evolution 54 4.3 Creating an Initial Population 56 4.4 Selection of Parents to Create a New Generation 56 4.4.1 Proportionate Selection 57 4.4.2 Ranking Selection 58 4.4.3 Tournament Selection 59 4.5 Population Diversity and Selective Pressure 59 4.6 Reproduction 59 4.6.1 Crossover 60 4.6.2 Mutation 62 4.7 Termination Criteria 63 4.8 User- Defined Parameters of the GA 63 4.9 Pseudocode of the GA 64 4.10 Conclusion 65 References 65 5 Simulated Annealing 69 Summary 69 5.1 Introduction 69 5.2 Mapping the Simulated Annealing (SA) Algorithm to the Physical Annealing Process 70 5.3 Generating an Initial State 72 5.4 Generating a New State 72 5.5 Acceptance Function 74 5.6 Thermal Equilibrium 75 5.7 Temperature Reduction 75 5.8 Termination Criteria 76 5.9 User- Defined Parameters of the SA 76 5.10 Pseudocode of the SA 77 5.11 Conclusion 77 References 77 6 Tabu Search 79 Summary 79 6.1 Introduction 79 6.2 Tabu Search (TS) Foundation 80 6.3 Generating an Initial Searching Point 82 6.4 Neighboring Points 82 6.5 Tabu Lists 84 6.6 Updating the Tabu List 84 6.7 Attributive Memory 85 6.7.1 Frequency-Based Memory 85 6.7.2 Recency-Based Memory 85 6.8 Aspiration Criteria 87 6.9 Intensification and Diversification Strategies 87 6.10 Termination Criteria 87 6.11 User- Defined Parameters of the TS 87 6.12 Pseudocode of the TS 88 6.13 Conclusion 89 References 89 7 Ant Colony Optimization 91 Summary 91 7.1 Introduction 91 7.2 Mapping Ant Colony Optimization (ACO) to Ants’ Foraging Behavior 92 7.3 Creating an Initial Population 94 7.4 Allocating Pheromone to the Decision Space 96 7.5 Generation of New Solutions 98 7.6 Termination Criteria 99 7.7 User- Defined Parameters of the ACO 99 7.8 Pseudocode of the ACO 100 7.9 Conclusion 100 References 101 8 Particle Swarm Optimization 103 Summary 103 8.1 Introduction 103 8.2 Mapping Particle Swarm Optimization (PSO) to the Social Behavior of Some Animals 104 8.3 Creating an Initial Population of Particles 107 8.4 The Individual and Global Best Positions 107 8.5 Velocities of Particles 109 8.6 Updating the Positions of Particles 110 8.7 Termination Criteria 110 8.8 User- Defined Parameters of the PSO 110 8.9 Pseudocode of the PSO 111 8.10 Conclusion 112 References 112 9 Differential Evolution 115 Summary 115 9.1 Introduction 115 9.2 Differential Evolution (DE) Fundamentals 116 9.3 Creating an Initial Population 118 9.4 Generating Trial Solutions 119 9.4.1 Mutation 119 9.4.2 Crossover 119 9.5 Greedy Criteria 120 9.6 Termination Criteria 120 9.7 User-Defined Parameters of the DE 120 9.8 Pseudocode of the DE 121 9.9 Conclusion 121 References 121 10 Harmony Search 123 Summary 123 10.1 Introduction 123 10.2 Inspiration of the Harmony Search (HS) 124 10.3 Initializing the Harmony Memory 125 10.4 Generating New Harmonies (Solutions) 127 10.4.1 Memory Strategy 127 10.4.2 Random Selection 128 10.4.3 Pitch Adjustment 129 10.5 Updating the Harmony Memory 129 10.6 Termination Criteria 130 10.7 User- Defined Parameters of the HS 130 10.8 Pseudocode of the HS 130 10.9 Conclusion 131 References 131 11 Shuffled Frog-Leaping Algorithm 133 Summary 133 11.1 Introduction 133 11.2 Mapping Memetic Evolution of Frogs to the Shuffled Frog Leaping Algorithm (SFLA) 134 11.3 Creating an Initial Population 137 11.4 Classifying Frogs into Memeplexes 137 11.5 Frog Leaping 138 11.6 Shuffling Process 140 11.7 Termination Criteria 141 11.8 User-Defined Parameters of the SFLA 141 11.9 Pseudocode of the SFLA 141 11.10 Conclusion 142 References 142 12 Honey-Bee Mating Optimization 145 Summary 145 12.1 Introduction 145 12.2 Mapping Honey-Bee Mating Optimization (HBMO) to the Honey- Bee Colony Structure 146 12.3 Creating an Initial Population 148 12.4 The Queen 150 12.5 Drone Selection 150 12.5.1 Mating Flights 151 12.5.2 Trial Solutions 152 12.6 Brood (New Solution) Production 152 12.7 Improving Broods (New Solutions) by Workers 155 12.8 Termination Criteria 156 12.9 User-Defined Parameters of the HBMO 156 12.10 Pseudocode of the HBMO 156 12.11 Conclusion 158 References 158 13 Invasive Weed Optimization 163 Summary 163 13.1 Introduction 163 13.2 Mapping Invasive Weed Optimization (IWO) to Weeds’ Biology 164 13.3 Creating an Initial Population 167 13.4 Reproduction 167 13.5 The Spread of Seeds 168 13.6 Eliminating Weeds with Low Fitness 169 13.7 Termination Criteria 170 13.8 User- Defined Parameters of the IWO 170 13.9 Pseudocode of the IWO 170 13.10 Conclusion 171 References 171 14 Central Force Optimization 175 Summary 175 14.1 Introduction 175 14.2 Mapping Central Force Optimization (CFO) to Newtons Gravitational Law 176 14.3 Initializing the Position of Probes 177 14.4 Calculation of Accelerations 180 14.5 Movement of Probes 181 14.6 Modification of Deviated Probes 181 14.7 Termination Criteria 182 14.8 User-Defined Parameters of the CFO 182 14.9 Pseudocode of the CFO 183 14.10 Conclusion 183 References 183 15 Biogeography-Based Optimization 185 Summary 185 15.1 Introduction 185 15.2 Mapping Biogeography-Based Optimization (BBO) to Biogeography Concepts 186 15.3 Creating an Initial Population 188 15.4 Migration Process 189 15.5 Mutation 191 15.6 Termination Criteria 192 15.7 User- Defined Parameters of the BBO 192 15.8 Pseudocode of the BBO 193 15.9 Conclusion 193 References 194 16 Firefly Algorithm 195 Summary 195 16.1 Introduction 195 16.2 Mapping the Firefly Algorithm (FA) to the Flashing Characteristics of Fireflies 196 16.3 Creating an Initial Population 198 16.4 Attractiveness 199 16.5 Distance and Movement 199 16.6 Termination Criteria 200 16.7 User-Defined Parameters of the FA 200 16.8 Pseudocode of the FA 201 16.9 Conclusion 201 References 201 17 Gravity Search Algorithm 203 Summary 203 17.1 Introduction 203 17.2 Mapping the Gravity Search Algorithm (GSA) to the Law of Gravity 204 17.3 Creating an Initial Population 205 17.4 Evaluation of Particle Masses 207 17.5 UpdatingVelocities and Positions 207 17.6 Updating Newton’s Gravitational Factor 208 17.7 Termination Criteria 209 17.8 User- Defined Parameters of the GSA 209 17.9 Pseudocode of the GSA 209 17.10 Conclusion 210 References 210 18 Bat Algorithm 213 Summary 213 18.1 Introduction 213 18.2 Mapping the Bat Algorithm (BA) to the Behavior of Microbats 214 18.3 Creating an Initial Population 215 18.4 Movement of Virtual Bats 217 18.5 Local Search and Random Flying 218 18.6 Loudness and Pulse Emission 218 18.7 Termination Criteria 219 18.8 User-Defined Parameters of the BA 219 18.9 Pseudocode of the BA 219 18.10 Conclusion 220 References 220 19 Plant Propagation Algorithm 223 Summary 223 19.1 Introduction 223 19.2 Mapping the Natural Process to the Planet Propagation Algorithm (PPA) 223 19.3 Creating an Initial Population of Plants 226 19.4 Normalizing the Fitness Function 226 19.5 Propagation 227 19.6 Elimination of Extra Solutions 228 19.7 Termination Criteria 228 19.8 User-Defined Parameters of the PPA 228 19.9 Pseudocode of the PPA 229 19.10 Conclusion 230 References 230 20 Water Cycle Algorithm 231 Summary 231 20.1 Introduction 231 20.2 Mapping the Water Cycle Algorithm (WCA) to the Water Cycle 232 20.3 Creating an Initial Population 233 20.4 Classification of Raindrops 235 20.5 Streams Flowing to the Rivers or Sea 236 20.6 Evaporation 237 20.7 Raining Process 238 20.8 Termination Criteria 239 20.9 User-Defined Parameters of the WCA 239 20.10 Pseudocode of the WCA 239 20.11 Conclusion 240 References 240 21 Symbiotic Organisms Search 241 Summary 241 21.1 Introduction 241 21.2 Mapping Symbiotic Relations to the Symbiotic Organisms Search (SOS) 241 21.3 Creating an Initial Ecosystem 242 21.4 Mutualism 244 21.5 Commensalism 245 21.6 Parasitism 245 21.7 Termination Criteria 246 21.8 Pseudocode of the SOS 246 21.9 Conclusion 247 References 247 22 Comprehensive Evolutionary Algorithm 249 Summary 249 22.1 Introduction 249 22.2 Fundamentals of the Comprehensive Evolutionary Algorithm (CEA) 250 22.3 Generating an Initial Population of Solutions 253 22.4 Selection 253 22.5 Reproduction 255 22.5.1 Crossover Operators 255 22.5.2 Mutation Operators 261 22.6 Roles of Operators 262 22.7 Input Data to the CEA 263 22.8 Termination Criteria 264 22.9 Pseudocode of the CEA 265 22.10 Conclusion 265 References 266 Wiley Series in Operations Research and Management Science 267 Index 269
£106.35
John Wiley & Sons Inc OCP Oracle Certified Professional Java SE 17
Book SynopsisTable of ContentsIntroduction xvii Chapter 1 Handling Date, Time, Text, Numeric and Boolean Values 1 Chapter 2 Controlling Program Flow 25 Chapter 3 Utilizing Java Object- Oriented Approach 45 Chapter 4 Handling Exceptions 149 Chapter 5 Working with Arrays and Collections 181 Chapter 6 Working with Streams and Lambda Expressions 211 Chapter 7 Packaging and Deploying Java Code and Use the Java Platform Module System 267 Chapter 8 Managing Concurrent Code Execution 295 Chapter 9 Using Java I/O API 319 Chapter 10 Accessing Databases Using JDBC 339 Chapter 11 Implementing Localization 353 Chapter 12 Practice Exam 1 365 Chapter 13 Practice Exam 2 391 Chapter 14 Practice Exam 3 417 Appendix Answers to Review Questions 443 Chapter 1: Handling Date, Time, Text, Numeric and Boolean Values 444 Chapter 2: Controlling Program Flow 450 Chapter 3: Utilizing Java Object- Oriented Approach 455 Chapter 4: Handling Exceptions 482 Chapter 5: Working with Arrays and Collections 489 Chapter 6: Working with Streams and Lambda Expressions 498 Chapter 7: Packaging and Deploying Java Code and Use the Java Platform Module System 516 Chapter 8: Managing Concurrent Code Execution 524 Chapter 9: Using Java I/O API 530 Chapter 10: Accessing Databases Using JDBC 535 Chapter 11: Implementing Localization 538 Chapter 12: Practice Exam 1 541 Chapter 13: Practice Exam 2 548 Chapter 14: Practice Exam 3 554 Index 561
£26.24
APress C17 Standard Library Quick Reference
Book SynopsisThis quick reference is a condensed guide to the essential data structures, algorithms, and functions provided by the C++17 Standard Library. It does not explain the C++ language or syntax, but is accessible to anyone with basic C++ knowledge or programming experience. Even the most experienced C++ programmer will learn a thing or two from it and find it a useful memory-aid. It is hard to remember all the possibilities, details, and intricacies of the vast and growing Standard Library. This handy reference guide is therefore indispensable to any C++ programmer. It offers a condensed, well-structured summary of all essential aspects of the C++ Standard Library. No page-long, repetitive examples or obscure, rarely used features. Instead, everything you need to know and watch out for in practice is outlined in a compact, to-the-point style, interspersed with practical tips and well-chosen, clarifying examples. This new ediTable of Contents0. Introduction1. Numerics and Math2. General Utilities3. Containers4. Algorithms5. Stream I/O6. Characters and Strings7. Concurrency8. DiagnosticsA. Appendix
£33.99
O'Reilly Media Algorithms in a Nutshell 2e
Book SynopsisThis updated edition of Algorithms in a Nutshell describes a large number of existing algorithms for solving a variety of problems, and helps you select and implement the right algorithm for your needs-with just enough math to let you understand and analyze algorithm performance.
£35.99
O'Reilly Media Learning Spark
Book SynopsisUpdated to emphasize new features in Spark 2.4., this second edition shows data engineers and scientists why structure and unification in Spark matters. Specifically, this book explains how to perform simple and complex data analytics and employ machine-learning algorithms.
£47.99
O'Reilly Media Python for Algorithmic Trading
Book SynopsisAlgorithmic trading is now open to small organizations and individual traders using online platforms. The tool of choice for many traders today is Python and its ecosystem of powerful packages. In this practical book, author Yves Hilpisch shows students, academics, and practitioners how to use Python in the fascinating field of algorithmic trading.
£47.99
Pan Macmillan Code Dependent
Book SynopsisShortlisted for the Women’s Prize for Non-Fiction 2024AI is changing what it means to be human. This is the unrivalled investigation into the impact of AI on how we live now.'The intimate investigation of AI that we’ve been waiting for, and it arrives not a moment too soon.' – Shoshana Zuboff, author of The Age of Surveillance CapitalismThrough the voices of ordinary people in places far removed from Silicon Valley, Code Dependent explores the impact of a set of powerful, flawed, and often exploitative technologies on individuals, communities, and our wider society. Madhumita Murgia, AI Editor at the FT, exposes how AI can strip away our collective and individual sense of agency – and shatter our illusion of free will.AI is already changing what it means to be human, in ways large and small. In this compelling work, Murgia reveals what could happen if we fail to reclaim our humanity.<
£17.00
Manning Publications Algorithms and Data Structures in Action
Book SynopsisAs a software engineer, you’ll encounter countless programming challenges that initially seem confusing, difficult, or even impossible. Don’t despair! Many of these “new” problems already have well-established solutions. Advanced Algorithms and Data Structures teaches you powerful approaches to a wide range of tricky coding challenges that you can adapt and apply to your own applications. Providing a balanced blend of classic, advanced, and new algorithms, this practical guide upgrades your programming toolbox with new perspectives and hands-on techniques. about the technology Data structures and algorithms are the foundations for how programs store and process information. Choosing the optimal algorithms ensures that your programs are fast, efficient, and reliable. about the book Algorithms and Data Structures in Action expands on the basic algorithms you already know to give you a better selection of solutions to different programming problems. In it, you’ll discover techniques for improving priority queues, efficient caching, clustering data, and more. Each example is fully illustrated with graphics, language agnostic pseudo-code, and code samples in various languages. When you’re done, you will be able to implement advanced and little-known algorithms to deliver better performance from your code. what's inside Improving on basic data structures Efficient caching Nearest neighbour search, including k-d trees and S-trees Full ‘pseudo-code’ and samples in multiple languages about the readerFor programmers with basic or intermediate skills. Written in a language-agnostic manner, no specific language knowledge is required. about the author Marcello La Rocca is a research scientist and a full-stack engineer focused on optimization algorithms, genetic algorithms, machine learning and quantum computing. He has contributed to large-scale web applications at companies like Twitter and Microsoft, has undertaken applied research in both academia and industry, and authored the Neatsort adaptive sorting algorithm.
£43.19
Manning Publications Grokking Deep Reinforcement Learning
Book Synopsis Written for developers with some understanding of deep learning algorithms. Experience with reinforcement learning is not required. Grokking Deep Reinforcement Learning introduces this powerful machine learning approach, using examples, illustrations, exercises, and crystal-clear teaching. You'll love the perfectly paced teaching and the clever, engaging writing style as you dig into this awesome exploration of reinforcement learning fundamentals, effective deep learning techniques, and practical applications in this emerging field. We all learn through trial and error. We avoid the things that cause us to experience pain and failure. We embrace and build on the things that give us reward and success. This common pattern is the foundation of deep reinforcement learning: building machine learning systems that explore and learn based on the responses of the environment. • Foundational reinforcement learning concepts and methods • The most popular deep reinforcement learning agents solving high-dimensional environments • Cutting-edge agents that emulate human-like behavior and techniques for artificial general intelligence Deep reinforcement learning is a form of machine learning in which AI agents learn optimal behavior on their own from raw sensory input. The system perceives the environment, interprets the results of its past decisions and uses this information to optimize its behavior for maximum long-term return.
£35.99
Manning Publications Grokking Artificial Intelligence Algorithms
Book SynopsisAI is primed to revolutionize the way we build applications, offering exciting new ways to solve problems, uncover insights, innovate new products, and provide better user experiences. Successful AI is based on a set of core algorithms that form a base of knowledge shared by all data scientists. Grokking Artificial Intelligence Algorithms is a fully-illustrated and interactive tutorial guide to the different approaches and algorithms that underpin AI. Written in simple language and with lots of visual references and hands-on examples, readers learn the concepts, terminology, and theory they need to effectively incorporate AI algorithms into their applications. Grokking Artificial Intelligence Algorithms uses simple language, jargon-busting explanations, and hand-drawn diagrams to open up complex algorithms. Don’t worry if you aren’t a calculus wunderkind; you’ll need only the algebra you picked up in math class. • Use cases for different AI algorithms • How to encode problems and solutions using data structures • Intelligent search for game playing • Ant colony algorithms for path finding • Evolutionary algorithms for optimization problems For software developers with high school-level algebra and calculus skills.
£43.19
Manning Publications Inside Deep Learning: Math, Algorithms, Models
Book Synopsis"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 PyTorchSelect the right deep learning componentsTrain and evaluate a deep learning modelFine tune deep learning models to maximize performanceUnderstand deep learning terminologyAdapt 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 technologyDeep 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 bookInside 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 readerFor Python programmers with basic machine learning skills. about the authorEdward 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.Trade Review“Afantastic book with a colourful and intuitive way of describing how deep learning works.” Richard Vaughan “Amazing at what it does. It's a book for people who not only want to use deep learning, but also understand it!” Adam Slysz “A remarkably clear explanation of practical deep learning showing readers how to quickly and systematically apply deep learning techniques tosolve their everyday data problems.” Jeff Neumann “If you want to learn some of the deeper explanations of deep learning and PyTorch then read this book!” Tiklu Ganguly “A must read if you don't understand how Deep Learning works under the hood.” Abdul Basit Hafeez
£35.99
The Pragmatic Programmers Genetic Algorithms and Machine Learning for
Book SynopsisSelf-driving cars, natural language recognition, and online recommendation engines are all possible thanks to Machine Learning. Now you can create your own genetic algorithms, nature-inspired swarms, Monte Carlo simulations, cellular automata, and clusters. Learn how to test your ML code and dive into even more advanced topics. If you are a beginner-to-intermediate programmer keen to understand machine learning, this book is for you. Discover machine learning algorithms using a handful of self-contained recipes. Build a repertoire of algorithms, discovering terms and approaches that apply generally. Bake intelligence into your algorithms, guiding them to discover good solutions to problems. In this book, you will: Use heuristics and design fitness functions. Build genetic algorithms. Make nature-inspired swarms with ants, bees and particles. Create Monte Carlo simulations. Investigate cellular automata. Find minima and maxima, using hill climbing and simulated annealing. Try selection methods, including tournament and roulette wheels. Learn about heuristics, fitness functions, metrics, and clusters. Test your code and get inspired to try new problems. Work through scenarios to code your way out of a paper bag; an important skill for any competent programmer. See how the algorithms explore and learn by creating visualizations of each problem. Get inspired to design your own machine learning projects and become familiar with the jargon. What You Need: Code in C++ (>= C++11), Python (2.x or 3.x) and JavaScript (using the HTML5 canvas). Also uses matplotlib and some open source libraries, including SFML, Catch and Cosmic-Ray. These plotting and testing libraries are not required but their use will give you a fuller experience. Armed with just a text editor and compiler/interpreter for your language of choice you can still code along from the general algorithm descriptions.
£35.14
Pragmatic Bookshelf A Common-Sense Guide to Data Structures and
Book SynopsisIf you thought that data structures and algorithms were all just theory, you're missing out on what they can do for your code. Learn to use Big O Notation to make your code run faster by orders of magnitude. Choose from data structures such as hash tables, trees, and graphs to increase your code's efficiency exponentially. With simple language and clear diagrams, this book makes this complex topic accessible, no matter your background. This new edition features practice exercises in every chapter, and new chapters on topics such as dynamic programming and heaps and tries. Get the hands-on info you need to master data structures and algorithms for your day-to-day work. Algorithms and data structures are much more than abstract concepts. Mastering them enables you to write code that runs faster and more efficiently, which is particularly important for today's web and mobile apps. Take a practical approach to data structures and algorithms, with techniques and real-world scenarios that you can use in your daily production code, with examples in JavaScript, Python, and Ruby. This new and revised second edition features new chapters on recursion, dynamic programming, and using Big O in your daily work. Use Big O notation to measure and articulate the efficiency of your code, and modify your algorithm to make it faster. Find out how your choice of arrays, linked lists, and hash tables can dramatically affect the code you write. Use recursion to solve tricky problems and create algorithms that run exponentially faster than the alternatives. Dig into advanced data structures such as binary trees and graphs to help scale specialized applications such as social networks and mapping software. You'll even encounter a single keyword that can give your code a turbo boost. Practice your new skills with exercises in every chapter, along with detailed solutions. Use these techniques today to make your code faster and more scalable
£35.14
No Starch Press,US Algorithmic Thinking, 2nd Edition: A
Book SynopsisKnowing how to design algorithms will take you from being a good programmer to a great programmer. This completely revised second edition teaches you how to design your own rocket-fast, right-for-the-task algorithms-minus the proofs and complex math. Forget the useless pseudocode and played-out examples you've seen in other books. Author and award-winning educator Dan Zingaro draws problems straight from online programming competitions to rigorously teach you all of the heavyweights you need to know, like hash tables, recursion, trees, graphs, and heaps. As he guides you to the perfect algorithmic solution for each unique programming puzzle, you'll build up a toolkit of go-to algorithms for quickly and correctly solving any problem you come across. The second edition features several entirely new chapters on dynamic programming and randomized algorithms, as well as more effective problems and enhanced explanations. Code examples are provided using the C language. Learn how to: ClassifTrade Review"Algorithmic Thinking provides the theoretical background and detailed problem explanations required to stay ahead of our human and robotic competitors."—Duncan Smith, Senior Software Engineer at Microsoft"In this newly revised edition, Daniel presents a carefully curated collection of challenging programming problems. By deconstructing the problems alongside clear, practical presentations of algorithms and data structures, Algorithmic Thinking will empower you–whether you're looking to get a leg up on technical interviews, enter the world of competitive programming, or just want to sharpen your skills."—Josh Lospinoso, Ph.D., author of C++ Crash Course"As someone who learnt algorithms from similar problems-oriented books in the early 00s, I believe an updated yet beginner-friendly exposition is long overdue. This book provides implementation-friendly introductions to most building blocks of combinatorial algorithms . . . It's by far the quickest way to get hands-on experience with algorithms, and is also a great supplement to more theoretical expositions."—Richard Peng, Associate Professor at the University of Waterloo’s Cheriton School of Computer Science"Not only does Algorithmic Thinking guide readers on how to approach tackling problems, but Zingaro also helps them understand why these approaches work. With an engaging selection of problems drawn from programming competitions, the book is an excellent guide and an engaging companion for the readers on their learning journey."—Sushant Sachdeva, Ph.D., Algorithms Professor at the University of Toronto"The step-by-step solution explanations are so detailed that it feels like Daniel is directly teaching us, his readers. This Second Edition is a worthy update to an already excellent text. I particularly like the new chapter on the rarely discussed randomized algorithms. I believe Computer Science students will enjoy reading it as I do."—Dr Steven Halim, Senior Lecturer at National University of Singapore"The book discusses many interesting problems from programming contests and presents useful techniques that are not often included in algorithm textbooks."—Antti Laaksonen, University of Helsinki"Now a fully updated and expanded second edition, Daniel Zingaro's Algorithmic Thinking: Unlock Your Programming Potential from No Starch Press is an ideal, comprehensive, and thoroughly 'user friendly' instructional resource for C Programming Language students and software development professionals alike."—Midwest Book ReviewTable of ContentsForewordIntroductionAcknowledgmentsChapter 1: Hash TablesChapter 2: Trees and RecursionChapter 3: Memoization and Dynamic ProgrammingChapter 4: Advanced Memoization and Dynamic ProgrammingChapter 5: Graphs and Breadth-First SearchChapter 6: Shortest Paths in Weighted GraphsChapter 7: Binary SearchChapter 8: Heaps and Segment TreesChapter 9: Union-FindChapter 10: RandomizationAfterwordAppendix A: Algorithm RuntimeAppendix B: Because I Can’t ResistAppendix C: Problem CreditsIndex
£35.99
Springer Nature Switzerland AG The Algorithm Design Manual
Book Synopsis"My absolute favorite for this kind of interview preparation is Steven Skiena’s The Algorithm Design Manual. More than any other book it helped me understand just how astonishingly commonplace … graph problems are -- they should be part of every working programmer’s toolkit. The book also covers basic data structures and sorting algorithms, which is a nice bonus. … every 1 – pager has a simple picture, making it easy to remember. This is a great way to learn how to identify hundreds of problem types." (Steve Yegge, Get that Job at Google)"Steven Skiena’s Algorithm Design Manual retains its title as the best and most comprehensive practical algorithm guide to help identify and solve problems. … Every programmer should read this book, and anyone working in the field should keep it close to hand. … This is the best investment … a programmer or aspiring programmer can make." (Harold Thimbleby, Times Higher Education)"It is wonderful to open to a random spot and discover an interesting algorithm. This is the only textbook I felt compelled to bring with me out of my student days.... The color really adds a lot of energy to the new edition of the book!" (Cory Bart, University of Delaware)"The is the most approachable book on algorithms I have." (Megan Squire, Elon University)---This newly expanded and updated third edition of the best-selling classic continues to take the "mystery" out of designing algorithms, and analyzing their efficiency. It serves as the primary textbook of choice for algorithm design courses and interview self-study, while maintaining its status as the premier practical reference guide to algorithms for programmers, researchers, and students. The reader-friendly Algorithm Design Manual provides straightforward access to combinatorial algorithms technology, stressing design over analysis. The first part, Practical Algorithm Design, provides accessible instruction on methods for designing and analyzing computer algorithms. The second part, the Hitchhiker's Guide to Algorithms, is intended for browsing and reference, and comprises the catalog of algorithmic resources, implementations, and an extensive bibliography. NEW to the third edition: -- New and expanded coverage of randomized algorithms, hashing, divide and conquer, approximation algorithms, and quantum computing -- Provides full online support for lecturers, including an improved website component with lecture slides and videos -- Full color illustrations and code instantly clarify difficult concepts -- Includes several new "war stories" relating experiences from real-world applications -- Over 100 new problems, including programming-challenge problems from LeetCode and Hackerrank. -- Provides up-to-date links leading to the best implementations available in C, C++, and Java Additional Learning Tools: -- Contains a unique catalog identifying the 75 algorithmic problems that arise most often in practice, leading the reader down the right path to solve them -- Exercises include "job interview problems" from major software companies -- Highlighted "take home lessons" emphasize essential concepts -- The "no theorem-proof" style provides a uniquely accessible and intuitive approach to a challenging subject -- Many algorithms are presented with actual code (written in C) -- Provides comprehensive references to both survey articles and the primary literature Written by a well-known algorithms researcher who received the IEEE Computer Science and Engineering Teaching Award, this substantially enhanced third edition of The Algorithm Design Manual is an essential learning tool for students and professionals needed a solid grounding in algorithms. Professor Skiena is also the author of the popular Springer texts, The Data Science Design Manual and Programming Challenges: The Programming Contest Training Manual.Table of ContentsIntroduction to Algorithm DesignAlgorithm AnalysisData StructuresSorting and SearchingDivide and ConquerRandomized Algorithms and HashingGraph TraversalWeighted Graph AlgorithmsCombinatorial Search and Heuristic MethodsDynamic ProgrammingNP-CompletenessDealing with Hard Problems How to Design Algorithms14 A Catalog of Algorithmic Problems 43715 Data Structures 43915.1 Dictionaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44015.2 Priority Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44515.3 Sux Trees and Arrays . . . . . . . . . . . . . . . . . . . . . . . 44815.4 Graph Data Structures . . . . . . . . . . . . . . . . . . . . . . . . 45215.5 Set Data Structures . . . . . . . . . . . . . . . . . . . . . . . . . 45615.6 Kd-Trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46016 Numerical Problems 46516.1 Solving Linear Equations . . . . . . . . . . . . . . . . . . . . . . 46716.2 Bandwidth Reduction . . . . . . . . . . . . . . . . . . . . . . . . 47016.3 Matrix Multiplication . . . . . . . . . . . . . . . . . . . . . . . . 47216.4 Determinants and Permanents . . . . . . . . . . . . . . . . . . . 47516.5 Constrained/Unconstrained Optimization . . . . . . . . . . . . . 47816.6 Linear Programming . . . . . . . . . . . . . . . . . . . . . . . . . 48216.7 Random Number Generation . . . . . . . . . . . . . . . . . . . . 48616.8 Factoring and Primality Testing . . . . . . . . . . . . . . . . . . . 49016.9 Arbitrary-Precision Arithmetic . . . . . . . . . . . . . . . . . . . 49316.10Knapsack Problem . . . . . . . . . . . . . . . . . . . . . . . . . . 49716.11Discrete Fourier Transform . . . . . . . . . . . . . . . . . . . . . 50117 Combinatorial Problems 50517.1 Sorting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50617.2 Searching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51017.3 Median and Selection . . . . . . . . . . . . . . . . . . . . . . . . . 51417.4 Generating Permutations . . . . . . . . . . . . . . . . . . . . . . 51717.5 Generating Subsets . . . . . . . . . . . . . . . . . . . . . . . . . . 52117.6 Generating Partitions . . . . . . . . . . . . . . . . . . . . . . . . 52417.7 Generating Graphs . . . . . . . . . . . . . . . . . . . . . . . . . . 52817.8 Calendrical Calculations . . . . . . . . . . . . . . . . . . . . . . . 53217.9 Job Scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53417.10Satisability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53718 Graph Problems: Polynomial-Time 54118.1 Connected Components . . . . . . . . . . . . . . . . . . . . . . . 54218.2 Topological Sorting . . . . . . . . . . . . . . . . . . . . . . . . . . 54618.3 Minimum Spanning Tree . . . . . . . . . . . . . . . . . . . . . . . 54918.4 Shortest Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55418.5 Transitive Closure and Reduction . . . . . . . . . . . . . . . . . . 55918.6 Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56218.7 Eulerian Cycle/Chinese Postman . . . . . . . . . . . . . . . . . . 56518.8 Edge and Vertex Connectivity . . . . . . . . . . . . . . . . . . . . 56816 CONTENTS18.9 Network Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57118.10Drawing Graphs Nicely . . . . . . . . . . . . . . . . . . . . . . . 57418.11Drawing Trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57818.12Planarity Detection and Embedding . . . . . . . . . . . . . . . . 58119 Graph Problems: NP-Hard 58519.1 Clique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58619.2 Independent Set . . . . . . . . . . . . . . . . . . . . . . . . . . . 58919.3 Vertex Cover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59119.4 Traveling Salesman Problem . . . . . . . . . . . . . . . . . . . . . 59419.5 Hamiltonian Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . 59819.6 Graph Partition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60119.7 Vertex Coloring . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60419.8 Edge Coloring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60819.9 Graph Isomorphism . . . . . . . . . . . . . . . . . . . . . . . . . 61019.10Steiner Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61419.11Feedback Edge/Vertex Set . . . . . . . . . . . . . . . . . . . . . . 61820 Computational Geometry 62120.1 Robust Geometric Primitives . . . . . . . . . . . . . . . . . . . . 62220.2 Convex Hull . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62620.3 Triangulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63020.4 Voronoi Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . 63420.5 Nearest Neighbor Search . . . . . . . . . . . . . . . . . . . . . . . 63720.6 Range Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64120.7 Point Location . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64420.8 Intersection Detection . . . . . . . . . . . . . . . . . . . . . . . . 64820.9 Bin Packing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65220.10Medial-Axis Transform . . . . . . . . . . . . . . . . . . . . . . . . 65520.11Polygon Partitioning . . . . . . . . . . . . . . . . . . . . . . . . . 65820.12Simplifying Polygons . . . . . . . . . . . . . . . . . . . . . . . . . 66120.13Shape Similarity . . . . . . . . . . . . . . . . . . . . . . . . . . . 66420.14Motion Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . 66720.15Maintaining Line Arrangements . . . . . . . . . . . . . . . . . . . 67120.16Minkowski Sum . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67421 Set and String Problems 67721.1 Set Cover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67821.2 Set Packing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68221.3 String Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . 68521.4 Approximate String Matching . . . . . . . . . . . . . . . . . . . . 68821.5 Text Compression . . . . . . . . . . . . . . . . . . . . . . . . . . 69321.6 Cryptography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69721.7 Finite State Machine Minimization . . . . . . . . . . . . . . . . . 70221.8 Longest Common Substring/Subsequence . . . . . . . . . . . . . 70621.9 Shortest Common Superstring . . . . . . . . . . . . . . . . . . . . 709CONTENTS 1722 Algorithmic Resources 71322.1 Algorithm Libraries . . . . . . . . . . . . . . . . . . . . . . . . . 71322.1.1 LEDA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71322.1.2 CGAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71422.1.3 Boost Graph Library . . . . . . . . . . . . . . . . . . . . . 71422.1.4 Netlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71422.1.5 Collected Algorithms of the ACM . . . . . . . . . . . . . 71522.1.6 GitHub and SourceForge . . . . . . . . . . . . . . . . . . . 71522.1.7 The Stanford GraphBase . . . . . . . . . . . . . . . . . . 71522.1.8 Combinatorica . . . . . . . . . . . . . . . . . . . . . . . . 71622.1.9 Programs from Books . . . . . . . . . . . . . . . . . . . . 71622.2 Data Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71722.3 Online Bibliographic Resources . . . . . . . . . . . . . . . . . . . 71822.4 Professional Consulting Services . . . . . . . . . . . . . . . . . . 71823 Bibliography 719Index 771
£58.49
Pearson Education (US) Absolute Beginners Guide to Algorithms
Book SynopsisKirupa Chinnathambi has spent most of his life teaching others to love web development as much as he does. He founded KIRUPA, one of the Web's most popular free web development education resources, serving 210,000+ registered members. Now a product manager at Google, he has authored several books, including Learning React (2017). He holds a B.S. in computer science from MIT.Table of ContentsPart I: Data Structures Chapter 1. Introduction to Data Structures .................................................................. 1 Right Tool for the Right Job .................................................................................... 2 Back to Data Structures ........................................................................................... 5 Conclusion ................................................................................................................. 6 Chapter 2. Big-O Notation and Complexity Analysis ................................................... 7 It's Example Time ...................................................................................................... 8 It's Big-O Notation Time! .......................................................................................11 Conclusion ...............................................................................................................15 Chapter 3. Arrays ....................................................................................................... 17 What Is an Array? ....................................................................................................18 Array Implementation / Use Cases .......................................................................24 Arrays and Memory ................................................................................................26 Performance Considerations .................................................................................30 Conclusion ...............................................................................................................32 Chapter 4. Linked Lists ............................................................................................... 35 Meet the Linked List ...............................................................................................36 Linked List: Time and Space Complexity .............................................................40 Linked List Variations ..............................................................................................41 Implementation .......................................................................................................44 Conclusion ...............................................................................................................52 Chapter 5. Stacks ........................................................................................................ 53 Meet the Stack ........................................................................................................54 A JavaScript Implementation ................................................................................56 Stacks: Time and Space Complexity ....................................................................58 Conclusion ...............................................................................................................59 Chapter 6. Queues ..................................................................................................... 61 Meet the Queue .....................................................................................................62 A JavaScript Implementation ................................................................................64 Queues: Time and Space Complexity ..................................................................66 Conclusion ...............................................................................................................67 Chapter 7. Trees ......................................................................................................... 69 Trees 101 .................................................................................................................70 Height and Depth ...................................................................................................75 Conclusion ...............................................................................................................77 Chapter 8. Binary Trees .............................................................................................. 79 Meet the Binary Tree ..............................................................................................80 A Simple Binary Tree Implementation ..................................................................86 Conclusion ...............................................................................................................89 Chapter 9. Binary Search Trees ................................................................................... 91 It's Just a Data Structure ........................................................................................93 Implementing a Binary Search Tree ....................................................................103 Performance and Memory Characteristics .........................................................110 Conclusion .............................................................................................................112 Chapter 10. Heaps ...................................................................................................... 113 Meet the Heap ......................................................................................................114 Heap Implementation ..........................................................................................126 Performance Characteristics ................................................................................132 Conclusion .............................................................................................................134 Chapter 11. Hashtable (aka Hashmap or Dictionary) .................................................. 137 A Very Efficient Robot ..........................................................................................138 From Robots to Hashing Functions ....................................................................142 From Hashing Functions to Hashtables .............................................................145 JavaScript Implementation/Usage ......................................................................148 Dealing with Collisions .........................................................................................150 Performance and Memory ...................................................................................151 Conclusion .............................................................................................................153 Chapter 12. Trie (aka Prefix Tree) ............................................................................... 155 What Is a Trie? ......................................................................................................156 Diving Deeper into Tries ......................................................................................167 Many More Examples Abound! ..........................................................................172 Implementation Time ...........................................................................................173 Performance ..........................................................................................................179 Conclusion .............................................................................................................181 Chapter 13. Graphs .................................................................................................... 183 What Is a Graph? ..................................................................................................184 Graph Implementation .........................................................................................190 Conclusion .............................................................................................................196 Part II: Algorithms Chapter 14. Introduction to Recursion ....................................................................... 199 Our Giant Cookie Problem ..................................................................................200 Recursion in Programming ..................................................................................202 Conclusion .............................................................................................................206 Chapter 15. Fibonacci and Going Beyond Recursion ................................................. 207 Recursively Solving the Fibonacci Sequence ....................................................209 Recursion with Memoization ...............................................................................213 Taking an Iteration-Based Approach ..................................................................215 Going Deeper on the Speed ..............................................................................217 Conclusion .............................................................................................................218 Chapter 16. Towers of Hanoi ...................................................................................... 221 How Towers of Hanoi Is Played ..........................................................................222 The Single Disk Case ...........................................................................................223 It's Two Disk Time .................................................................................................224 Three Disks ............................................................................................................225 The Algorithm .......................................................................................................228 The Code Solution ...............................................................................................229 Check Out the Recursiveness! ............................................................................231 It's Math Time ........................................................................................................232 Conclusion .............................................................................................................234 Chapter 17. Search Algorithms and Linear Search ..................................................... 235 Linear Search .........................................................................................................236 Conclusion .............................................................................................................241 Chapter 18. Faster Searching with Binary Search ....................................................... 243 Binary Search in Action ........................................................................................243 The JavaScript Implementation ..........................................................................250 Runtime Performance ...........................................................................................254 Conclusion .............................................................................................................257 Chapter 19. Binary Tree Traversal ............................................................................... 259 Breadth-First Traversal ..........................................................................................260 Depth-First Traversal ............................................................................................265 Implementing Our Traversal Approaches ..........................................................270 Performance of Our Traversal Approaches ........................................................278 Conclusion .............................................................................................................279 Chapter 20. Depth-First Search (DFS) and Breadth-First Search (BFS) ....................... 281 A Tale of Two Exploration Approaches ..............................................................282 It's Example Time ..................................................................................................285 When to Use DFS? When to Use BFS? ..............................................................298 A JavaScript Implementation ..............................................................................300 Performance Details .............................................................................................307 Conclusion .............................................................................................................308 Chapter 21. Quicksort ................................................................................................ 309 A Look at How Quicksort Works .........................................................................310 Another Simple Look ...........................................................................................314 It's Implementation Time .....................................................................................319 Performance Characteristics ................................................................................322 Conclusion .............................................................................................................323 Chapter 22. Bubblesort .............................................................................................. 325 How Bubblesort Works ........................................................................................326 Walkthrough ..........................................................................................................329 The Code ...............................................................................................................333 Conclusion .............................................................................................................333 Chapter 23. Insertion Sort .......................................................................................... 335 How Insertion Sort Works ....................................................................................336 One More Example ..............................................................................................347 Algorithm Overview and Implementation .........................................................349 Performance Analysis ...........................................................................................351 Conclusion .............................................................................................................353 Chapter 24. Selection Sort ......................................................................................... 355 Selection Sort Walkthrough .................................................................................356 Algorithm Deep Dive ...........................................................................................364 The JavaScript Implementation ..........................................................................366 Conclusion .............................................................................................................369 Chapter 25. Mergesort ............................................................................................... 371 How Mergesort Works .........................................................................................372 Mergesort: The Algorithm Details ......................................................................379 Looking at the Code ............................................................................................380 Conclusion .............................................................................................................381 Conclusion .................................................................................................................383 Index ............................................................................................................................ 387
£26.99
Cambridge University Press How to Think about Algorithms
Book SynopsisThe second edition of this student-friendly textbook now includes over 150 new exercises, key concept summaries and a chapter on machine learning algorithms. Its approachability and clarity make it ideal as both a main course text or as a supplementary book for students who find other books challenging.
£28.49
APress Modern Deep Learning for Tabular Data
Book SynopsisDeep learning is one of the most powerful tools in the modern artificial intelligence landscape. While having been predominantly applied to highly specialized image, text, and signal datasets, this book synthesizes and presents novel deep learning approaches to a seemingly unlikely domain - tabular data. Whether for finance, business, security, medicine, or countless other domain, deep learning can help mine and model complex patterns in tabular data - an incredibly ubiquitous form of structured data.Part I of the book offers a rigorous overview of machine learning principles, algorithms, and implementation skills relevant to holistically modeling and manipulating tabular data. Part II studies five dominant deep learning model designs - Artificial Neural Networks, Convolutional Neural Networks, Recurrent Neural Networks, Attention and Transformers, and Tree-Rooted Networks - through both their ''default'' usage and their application to tabular data. Part III compounds the powTable of Contents○ Section 1: Machine Learning and Tabular Data ■ Chapter 1 – Introduction to Machine Learning ■ Chapter 2 – Data Tools ○ Section 2: Applied Deep Learning Architectures ■ Chapter 3 – Artificial Neural Networks ■ Chapter 4 – Convolutional Neural Networks ■ Chapter 5 – Recurrent Neural Networks ■ Chapter 6 – Attention Mechanism ■ Chapter 7 – Tree-based Neural Networks ○ Section 3: Deep Learning Design and Tools ■ Chapter 8 – Autoencoders ■ Chapter 9 – Data Generation ■ Chapter 10 – Meta-optimization ■ Chapter 11 – Multi-model arrangement ■ Chapter 12 – Deep Learning Interpretability ○ Appendix A
£41.24
APress Practical Business Analytics Using R and Python
Book SynopsisThis book illustrates how data can be useful in solving business problems. It explores various analytics techniques for using data to discover hidden patterns and relationships, predict future outcomes, optimize efficiency and improve the performance of organizations. You''ll learn how to analyze data by applying concepts of statistics, probability theory, and linear algebra. In this new edition, both R and Python are used to demonstrate these analyses. Practical Business Analytics Using R and Python also features new chapters covering databases, SQL, Neural networks, Text Analytics, and Natural Language Processing.Part one begins with an introduction to analytics, the foundations required to perform data analytics, and explains different analytics terms and concepts such as databases and SQL, basic statistics, probability theory, and data exploration. Part two introduces predictive models using statistical machine learning and discusses concepts like regression, classifiTable of ContentsSection 1: Introduction to AnalyticsIn this section, we discuss the necessary foundations required to perform data analytics. We discuss different analytics terms, basics statistics and probability theory, descriptive statistics including various plots, and various measures for evaluating your predictive models. Chapter 1: Business Analytics RevolutionChapter 2: Foundations of Business AnalyticsChapter 3: Structured Query Language (SQL) AnalyticsChapter 4: Business Analytics Process Chapter 5: Exploratory Data Analysis (EDA)Chapter 6: Evaluating Analytics Model PerformanceSection II: Supervised Learning and Predictive AnalyticsIn this section, we introduce statistical learning models and machine learning models. We present various regression analysis and classification analysis. We also discuss logistic regression and end our discussion by introducing Neural Network and gradient descent algorithms. Chapter 7: Simple Linear RegressionsChapter 8: Multiple Linear RegressionsChapter 9: ClassificationChapter 10: Neural NetworksChapter 11: Logistic RegressionSection III: Time series modelsIn this section, we introduce optimization models and Time series analysis. In time series, we discuss different forecasting models, and in optimization models, we introduce both linear and non-linear optimization models.Chapter 12: Time Series – ForecastingSection IV: Unsupervised model and Text MiningIn this section, we discuss two popular unsupervised models - cluster analysis and relationship data mining techniques. Finally, we end this section by introducing text mining and NLP and briefly introducing big data. Chapter 13: Cluster AnalysisChapter 14: Relationship Data MiningChapter 15: Mining Text and Text Analytics Chapter 16: Big Data and Big Data AnalyticsSection V: Business Analytics ToolsThis is the last part. In this section we This section summarizes what we have learned in the earlier section by working on some case studies. We work on practical cases using public datasets using both ‘R’ and ‘Python’.Chapter 17: R programming for AnalyticsChapter 18: Python Programming for Analytics
£41.24
APress Architecture of Advanced Numerical Analysis
Book SynopsisThis unique open access book applies the functional OCaml programming language to numerical or computational weighted data science, engineering, and scientific applications. This book is based on the authors' first-hand experience building and maintaining Owl, an OCaml-based numerical computing library.You'll first learn the various components in a modern numerical computation library. Then, you will learn how these components are designed and built up and how to optimize their performance. After reading and using this book, you'll have the knowledge required to design and build real-world complex systems that effectively leverage the advantages of the OCaml functional programming language. What You Will LearnOptimize core operations based on N-dimensional arraysDesign and implement an industry-level algorithmic differentiation moduleImplement mathematical optimization, regression, and deep neural network functionalities based on algorithmic differentiationDesign and optimize a compTable of ContentsPrologueA Brief HistoryReductionism vs. HolismKey FeaturesContact MePART 1: NUMERICAL TECHNIQUES1. IntroductionWhat Is Scientific ComputingWhat is Functional ProgrammingWho Is This Book ForStructure of the BookInstallationOption 1: Install from OPAMOption 2: Pull from Docker HubOption 3: Pin the Dev-RepoOption 4: Compile from SourceCBLAS/LAPACKE DependencyInteracting with OwlUsing ToplevelUsing NotebookUsing Owl-JupyterSummary2. ConventionsPure vs. ImpureNdarray vs. ScalarInfix OperatorsOperator ExtensionModule StructuresNumber and PrecisionPolymorphic FunctionsModule ShortcutsType Casting3. VisualisationCreate PlotsSpecificationSubplotsMultiple LinesLegendDrawing PatternsLine PlotScatter PlotStairs PlotBox PlotStem PlotArea PlotHistogram & CDF PlotLog Plot3D PlotAdvanced Statistical PlotSummaryReferences4. Mathematical FunctionsBasic FunctionsBasic Unary Math FunctionsBasic Binary FunctionsExponential and Logarithmic FunctionsTrigonometric FunctionsOther Math FunctionsSpecial FunctionsAiry FunctionsBessel FunctionsElliptic FunctionsGamma FunctionsBeta FunctionsStruve FunctionsZeta FunctionsError FunctionsIntegral FunctionsFactorialsInterpolation and ExtrapolationIntegrationUtility FunctionsSummary5. Statistical FunctionsRandom VariablesDiscrete Random VariablesContinuous Random VariablesDescriptive StatisticsOrder StatisticsSpecial DistributionGamma DistributionBeta DistributionChi-Square DistributionStudent-t DistributionCauchy DistributionMultiple VariablesSamplingHypothesis TestsTheoryGaussian Distribution in Hypothesis TestingTwo-Sample InferencesGoodness-of-fit TestsNon-parametric StatisticsCovariance and CorrelationsAnalysis of VarianceSummary6. N-Dimensional ArraysNdarray TypesCreation FunctionsProperties FunctionsMap FunctionsFold FunctionsScan FunctionsComparison FunctionsVectorised FunctionsIteration FunctionsManipulation FunctionsSerialisationTensorsSummaryReferences7. Slicing and BroadcastingSlicingBasic SlicingFancy SlicingConventions in DefinitionExtended OperatorsAdvanced UsageBroadcastingWhat Is Broadcasting?Shape ConstraintsSupported OperationsSlicing in NumPy and JuliaInternal MechanismSummary8. Linear AlgebraVectors and MatricesCreating MatricesAccessing ElementsIterate, Map, Fold, and FilterMath OperationsGaussian EliminationLU FactorisationInverse and TransposeVector SpacesRank and BasisOrthogonalitySolving Ax = bMatrix SensitivityDeterminantsEigenvalues and EigenvectorsSolving Ax=λ xComplex MatricesSimilarity Transformation and DiagonalisationPositive Definite MatricesPositive DefinitenessSingular Value DecompositionInternal: CBLAS and LAPACKELow-level Interface to CBLAS & LAPACKESparse MatricesSummaryReferences9. Ordinary Differential EquationsWhat Is An ODEExact SolutionsLinear SystemsSolving An ODE NumericallyOwl-ODEExample: Linear Oscillator SystemSolver StructureSymplectic SolversFeatures and LimitsExamples of using Owl-ODEExplicit ODETwo Body ProblemLorenz AttractorDamped OscillationStiffnessSolve Non-Stiff ODEsSolve Stiff ODEsSummaryReferences10. Signal ProcessingDiscrete Fourier TransformFast Fourier TransformExamplesApplications of FFTFind period of sunspotsDecipher the ToneImage ProcessingFilteringExample: SmoothingGaussian FilterSignal ConvolutionFFT and Image ConvolutionSummaryReferences11. Algorithmic DifferentiationChain RuleDifferentiation MethodsHow Algorithmic Differentiation WorksForward ModeReverse ModeForward or Reverse?A Strawman AD EngineSimple Forward ImplementationSimple Reverse ImplementationUnified ImplementationsForward and Reverse Propagation APIExpressing ComputationExample: Forward ModeExample: Reverse ModeHigh-Level APIsDerivative and GradientJacobianHessian and LaplacianOther APIsInternal of Algorithmic DifferentiationGo Beyond Simple ImplementationExtend AD moduleLazy EvaluationSummaryReferences12. OptimisationIntroductionRoot FindingUnivariate Function OptimisationUse DerivativesGolden Section SearchMultivariate Function OptimisationNelder-Mead Simplex MethodGradient Descent MethodsConjugate Gradient MethodNewton and Quasi-Newton MethodsGlobal Optimisation and Constrained OptimisationSummaryReferences13. RegressionLinear RegressionProblem: Where to locate a new McDonald’s restaurant?Cost FunctionSolving Problem with Gradient DescentMultiple RegressionFeature NormalisationAnalytical SolutionNon-linear regressionsRegularisationOls, Ridge, Lasso, and Elastic_netLogistic RegressionSigmoid FunctionCost FunctionExampleMulti-class classificationSupport Vector MachineKernel and Non-linear BoundaryExampleModel error and selectionError MetricsModel SelectionSummaryReferences14. Deep Neural NetworksPerceptronYet Another RegressionModel RepresentationForward PropagationBack propagationFeed Forward NetworkLayersActivation FunctionsInitialisationTrainingTestNeural Network ModuleModule StructureNeuronsNeural GraphTraining ParametersConvolutional Neural NetworkRecurrent Neural NetworkLong Short Term Memory (LSTM)Generative Adversarial NetworkSummaryReferences15. Natural Language ProcessingIntroductionText CorpusStep-by-step OperationUse the Corpus ModuleVector Space ModelsBag of Words (BOW)Term Frequency–Inverse Document Frequency (TF-IDF)Latent Dirichlet Allocation (LDA)ModelsDirichlet DistributionGibbs SamplingTopic Modelling ExampleLatent Semantic Analysis (LSA)Search Relevant DocumentsEuclidean and Cosine SimilarityLinear SearchingSummaryReferences16. Dataframe for Tabular DataBasic ConceptsCreate FramesManipulate FramesQuery FramesIterate, Map, and FilterRead/Write CSV FilesInfer Type and SeparatorSummary17. Symbolic RepresentationIntroductionDesignCore abstractionEnginesONNX EngineExample 1: Basic operationsExample 2: Variable InitialisationExample 3: Neural networkLaTeX EngineOwl EngineSummary18. Probabilistic ProgrammingGenerative Model vs Discriminative ModelBayesian NetworksSampling TechniquesInferencePART 2: SYSTEM ARCHITECTURE19. Architecture OverviewIntroductionArchitecture OverviewCore ImplementationN-dimensional ArrayInterfaced LibrariesAdvanced FunctionalityComputation GraphAlgorithmic DifferentiationRegressionNeural NetworkParallel ComputingActor EngineGPU ComputingOpenMPCommunity-Driven R&DSummary20. Core OptimisationBackgroundNumerical LibrariesOptimisation of Numerical ComputationInterfacing to C CodeNdarray OperationsFrom OCaml to COptimisation TechniquesMap OperationsConvolution OperationsReduction OperationsRepeat OperationsSummaryReferences21. Automatic Empirical TuningWhat is Parameter TuningWhy Parameter Tuning in OwlHow to Tune OpenMP ParametersMake a DifferenceSummary22. Computation GraphIntroductionWhat is a Computation Graph?From Dynamic to StaticSignificance in ComputingExamplesExample 01: Basic CGraphExample 02: CGraph with ADExample 03: CGraph with DNNDesign RationaleOptimisation of CGraphOptimising memory with pebblesAllocation AlgorithmAs Intermediate RepresentationsSummary23. Scripting and Zoo SystemIntroductionShare Script with ZooTypical ScenarioCreate a ScriptShare via GistImport in Another ScriptSelect a Specific VersionCommand Line ToolMore ExamplesSystem DesignServicesType CheckingBackendDomain Specific LanguageService DiscoveryUse CaseSummaryReferences24. Compiler BackendsBase LibraryBackend: JavaScriptUse Native OCamlUse Facebook ReasonBackend: MirageOSMirageOS and UnikernelExample: Gradient DescentExample: Neural NetworkEvaluationSummary25. Distributed ComputingActor SystemDesignActor EnginesMap-Reduce EngineParameter Server EnginePeer-to-Peer EngineClassic Synchronise ParallelBulk Synchronous ParallelAsynchronous ParallelStale Synchronous ParallelProbabilistic Synchronise ParallelBasic idea: samplingCompatibilityBarrier Trade-off DimensionsConvergenceA Distributed Training ExampleStep ProgressAccuracySummaryReferences26. Testing FrameworkUnit TestExampleWhat Could Go WrongCorner CasesTest CoverageUse FunctorSummary27. Constants and Metric SystemWhat Is a Metric SystemFour Metric SystemsSI PrefixExample: Physics and Math constantsInternational System of UnitsTimeLengthAreaVolumeSpeedMassForceEnergyPowerPressureViscosityLuminanceRadioactivity28. Internal Utility ModulesDataset ModuleMNISTCIFAR-10Graph ModuleStack and Heap ModulesCount-Min SketchSummaryPART 3: CASE STUDIES29. Case - Image RecognitionBackgroundLeNetAlexNetVGGResNetSqueezeNetCapsule NetworkBuilding InceptionV3 NetworkInceptionV1 and InceptionV2FactorisationGrid Size ReductionInceptionV3 ArchitecturePreparing WeightsProcessing ImageRunning InferenceApplicationsSummaryReferences30. Case - Instance SegmentationIntroductionMask R-CNN NetworkBuilding Mask R-CNNFeature ExtractorProposal GenerationClassificationRun the CodeSummaryReferences31. Case - Neural Style TransferContent and StyleContent ReconstructionStyle RecreationCombining Content and StyleRunning NSTExtending NSTFast Style TransferBuilding FST NetworkRunning FSTSummaryReferences32. Case - Recommender SystemIntroductionArchitectureBuild Topic ModelsIndex Text CorpusRandom ProjectionOptimising Vector StorageOptimise Data StructureOptimise Index AlgorithmSearch ArticlesCode ImplementationMake It LiveSummaryReferences33. Case - Applications in FinanceIntroductionBond PricingBlack-Scholes ModelMathematical ModelOption PricingPortfolio OptimisationMathematical ModelEfficient FrontierMaximise Sharpe Ratio
£33.74
APress Make Your Data Speak
Book SynopsisTable of ContentsIntroduction. Three stories that made me write this bookChapter 1. Data preparation 1.1 Analyzing and transforming the original data 1.2 Preparing the basis for a dashboard 1.3 Making data samples for visualizations 1.4. Setting up an interactivity 1.5. Summary and conclusions of the chapter, quick tricks Chapter 2. Dashboard assembling 2.1 Assembling a dashboard according to the layout 2.2 Creating KPI cards 2.3 Aligning a dashboard, adding a header 2.4 Summary and conclusions of the chapter, quick tricks Chapter 3. Anatomy of diagrams 3.1 Analyzing ready-made design styles 3.2 Setting up data labels 3.3 Working with the text: remove the excess, add the necessary 3.4 Designing bar charts 3.5 Setting up the chart template 3.6 Summary and conclusions of the chapter, quick tricks Chapter 4. Final dashboard design 4.1 Aligning the headers to the grid 4.2 Creating new cards on the top of the cells 4.3 Making interactive slicers 4.4 Working with Excel colors and fonts 4.5 Improving standard Excel themes 4.6. Summary and conclusions of the chapter, quick tricks Chapter 5. Corporate identity 5.1 Creating a theme in accordance with the brandbook 5.2 Adapting the theme according to the checklist 5.3 Creating a dashboard in a dark theme 5.4 Summary and conclusions of the chapter, quick tricks Chapter 6. Data visualization rules 6.1 Types of data analysis 6.2 How to choose charts 6.3 Life hacks for multiple data series 6.4 When you need everything at once 6.5 Funnel and waterfall 6.6 Summary and conclusions of the chapter, quick tricks Conclusion
£41.24
APress Building Responsible AI Algorithms
Book SynopsisThis book introduces a Responsible AI framework and guides you through processes to apply at each stage of the machine learning (ML) life cycle, from problem definition to deployment, to reduce and mitigate the risks and harms found in artificial intelligence (AI) technologies. AI offers the ability to solve many problems today if implemented correctly and responsibly. This book helps you avoid negative impacts that in some cases have caused loss of life and develop models that are fair, transparent, safe, secure, and robust. The approach in this book raises your awareness of the missteps that can lead to negative outcomes in AI technologies and provides a Responsible AI framework to deliver responsible and ethical results in ML. It begins with an examination of the foundational elements of responsibility, principles, and data. Next comes guidance on implementation addressing issues such as fairness, transparency, safety, privacy, and robustness. The book helps you think responsiblTable of ContentsIntroductionPart I. Foundation1. Responsibility2. AI Principles3. DataPart II. Implementation4. Responsible AI Framework5. Fairness6. Safety7. Humans in the Loop8. Transparency9. Privacy and RobustnessPart III. Ethical Considerations10. Ethics of AI and MLReferences
£25.19