Best of
Algorithms

2019

Advanced Algorithms and Data Structures


Marcello La Rocca - 2019
    Don’t despair! Many of these “new” problems already have well-established solutions. Algorithms and Data Structures in Action 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.

Algorithms for Optimization


Mykel J. Kochenderfer - 2019
    The book approaches optimization from an engineering perspective, where the objective is to design a system that optimizes a set of metrics subject to constraints. Readers will learn about computational approaches for a range of challenges, including searching high-dimensional spaces, handling problems where there are multiple competing objectives, and accommodating uncertainty in the metrics. Figures, examples, and exercises convey the intuition behind the mathematical approaches. The text provides concrete implementations in the Julia programming language.Topics covered include derivatives and their generalization to multiple dimensions; local descent and first- and second-order methods that inform local descent; stochastic methods, which introduce randomness into the optimization process; linear constrained optimization, when both the objective function and the constraints are linear; surrogate models, probabilistic surrogate models, and using probabilistic surrogate models to guide optimization; optimization under uncertainty; uncertainty propagation; expression optimization; and multidisciplinary design optimization. Appendixes offer an introduction to the Julia language, test functions for evaluating algorithm performance, and mathematical concepts used in the derivation and analysis of the optimization methods discussed in the text. The book can be used by advanced undergraduates and graduate students in mathematics, statistics, computer science, any engineering field, (including electrical engineering and aerospace engineering), and operations research, and as a reference for professionals.

Java Coding Problems: Improve your Java Programming skills by solving real-world coding challenges


Anghel Leonard - 2019
    Its new features and concepts can be adopted to solve a variety of modern-day problems. This book enables you to adopt an objective approach to common problems by explaining the correct practices and decisions with respect to complexity, performance, readability, and more.Java Coding Problems will help you complete your daily tasks and meet deadlines. You can count on the 300+ applications containing 1,000+ examples in this book to cover the common and fundamental areas of interest: strings, numbers, arrays, collections, data structures, date and time, immutability, type inference, Optional, Java I/O, Java Reflection, functional programming, concurrency and the HTTP Client API. Put your skills on steroids with problems that have been carefully crafted to highlight and cover the core knowledge that is accessed in daily work. In other words (no matter if your task is easy, medium or complex) having this knowledge under your tool belt is a must, not an option.By the end of this book, you will have gained a strong understanding of Java concepts and have the confidence to develop and choose the right solutions to your problems.What you will learn Adopt the latest JDK 11 and JDK 12 features in your applications Solve cutting-edge problems relating to collections and data structures Get to grips with functional-style programming using lambdas Perform asynchronous communication and parallel data processing Solve strings and number problems using the latest Java APIs Become familiar with different aspects of object immutability in Java Implement the correct practices and clean code techniques Who this book is forIf you are a Java developer who wants to level-up by solving real-world problems, then this book is for you. Working knowledge of Java is required to get the most out of this book. Table of Contents Strings, Numbers, and Math Objects, Immutability, and Switch Expressions Working with Date and Time Type Inference Arrays, Collections, and Data Structures Java I/O Paths, Files, Buffers, Scanning, and Formatting Java Reflection Classes, Interfaces, Constructors, Methods, and Fields Functional Style Programming - Fundamentals and Design Patterns Functional style programming - Deep dive Concurrency - Thread pools, Callables and Synchronizers Concurrency - Deep dive Optional The HTTP Client and WebSocket APIs

Opt Art: From Mathematical Optimization to Visual Design


Robert Bosch - 2019
    It is one of today's most important branches of mathematics and computer science--and also a surprisingly rich medium for creating breathtaking works of art. Opt Art takes readers on an entertaining tour of linear optimization and its applications, showing along the way how it can be used to design visual art.Robert Bosch provides a lively and accessible introduction to the geometric, algebraic, and algorithmic foundations of optimization. He presents classical applications, such as the legendary Traveling Salesman Problem, and shows how to adapt them to make optimization art--opt art. Each chapter in this marvelously illustrated book begins with a problem or puzzle and demonstrates how the solution can be derived using a host of artistic methods and media, including 3D printing, laser cutting, and computer-controlled machining. Bosch focuses on mathematical modeling throughout--converting a problem into a workable mathematical form, solving it using optimization techniques, and examining the results, which can take the form of mosaics, line drawings, and even sculpture. All you need is some high-school algebra, geometry, and calculus to follow along.Featuring more than a hundred illustrations and photos of Bosch's own art, Opt Art demonstrates how mathematics and computing can be used to create beauty and express emotion through amazing works of art.

The Burden of Choice: Recommendations, Subversion, and Algorithmic Culture


Jonathan Cohn - 2019
    Fundamentally concerned with how the recommendation has come to serve as a form of control that frames a contemporary American as heteronormative, white, and well off, this book asserts that the industries that use these automated recommendations tend to ignore and obscure all other identities in the service of making the type of affluence they are selling appear commonplace. Focusing on the period from the mid-1990s to approximately 2010 (while this technology was still novel), Jonathan Cohn argues that automated recommendations and algorithms are far from natural, neutral, or benevolent. Instead, they shape and are shaped by changing conceptions of gender, sexuality, race, and class. With its cultural studies and humanities-driven methodologies focused on close readings, historical research, and qualitative analysis, The Burden of Choice models a promising avenue for the study of algorithms and culture.