![]() |
Welcome to Loot.co.za!
Sign in / Register |Wishlists & Gift Vouchers |Help | Advanced search
|
Your cart is empty |
||
|
Books > Computing & IT > General theory of computing > Data structures
This book presents models and algorithms for complex scheduling problems. Besides resource-constrained project scheduling problems with applications also job-shop problems with flexible machines, transportation or limited buffers are discussed. Discrete optimization methods like linear and integer programming, constraint propagation techniques, shortest path and network flow algorithms, branch-and-bound methods, local search and genetic algorithms, and dynamic programming are presented. They are used in exact or heuristic procedures to solve the introduced complex scheduling problems. Furthermore, methods for calculating lower bounds are described. Most algorithms are formulated in detail and illustrated with examples. In this second edition some errors were corrected, some parts were explained in more detail, and new material has been added. In particular, further generalizations of the RCPSP, additional practical applications and some more algorithms were integrated.
The advent of new architectures and computing platforms means that synchronization and concurrent computing are among the most important topics in computing science. Concurrent programs are made up of cooperating entities -- processors, processes, agents, peers, sensors -- and synchronization is the set of concepts, rules and mechanisms that allow them to coordinate their local computations in order to realize a common task. This book is devoted to the most difficult part of concurrent programming, namely synchronization concepts, techniques and principles when the cooperating entities are asynchronous, communicate through a shared memory, and may experience failures. Synchronization is no longer a set of tricks but, due to research results in recent decades, it relies today on sane scientific foundations as explained in this book. In this book the author explains synchronization and the implementation of concurrent objects, presenting in a uniform and comprehensive way the major theoretical and practical results of the past 30 years. Among the key features of the book are a new look at lock-based synchronization (mutual exclusion, semaphores, monitors, path expressions); an introduction to the atomicity consistency criterion and its properties and a specific chapter on transactional memory; an introduction to mutex-freedom and associated progress conditions such as obstruction-freedom and wait-freedom; a presentation of Lamport's hierarchy of safe, regular and atomic registers and associated wait-free constructions; a description of numerous wait-free constructions of concurrent objects (queues, stacks, weak counters, snapshot objects, renaming objects, etc.); a presentation of the computability power of concurrent objects including the notions of universal construction, consensus number and the associated Herlihy's hierarchy; and a survey of failure detector-based constructions of consensus objects. The book is suitable for advanced undergraduate students and graduate students in computer science or computer engineering, graduate students in mathematics interested in the foundations of process synchronization, and practitioners and engineers who need to produce correct concurrent software. The reader should have a basic knowledge of algorithms and operating systems.
Discover the foundations of software engineering with this easy and intuitive guide In the newly updated second edition of Beginning Software Engineering, expert programmer and tech educator Rod Stephens delivers an instructive and intuitive introduction to the fundamentals of software engineering. In the book, you'll learn to create well-constructed software applications that meet the needs of users while developing the practical, hands-on skills needed to build robust, efficient, and reliable software. The author skips the unnecessary jargon and sticks to simple and straightforward English to help you understand the concepts and ideas discussed within. He also offers you real-world tested methods you can apply to any programming language. You'll also get: Practical tips for preparing for programming job interviews, which often include questions about software engineering practices A no-nonsense guide to requirements gathering, system modeling, design, implementation, testing, and debugging Brand-new coverage of user interface design, algorithms, and programming language choices Beginning Software Engineering doesn't assume any experience with programming, development, or management. It's plentiful figures and graphics help to explain the foundational concepts and every chapter offers several case examples, Try It Out, and How It Works explanatory sections. For anyone interested in a new career in software development, or simply curious about the software engineering process, Beginning Software Engineering, Second Edition is the handbook you've been waiting for.
A successor to the first edition, this updated and revised book is a great companion guide for students and engineers alike, specifically software engineers who design reliable code. While succinct, this edition is mathematically rigorous, covering the foundations of both computer scientists and mathematicians with interest in algorithms. Besides covering the traditional algorithms of Computer Science such as Greedy, Dynamic Programming and Divide & Conquer, this edition goes further by exploring two classes of algorithms that are often overlooked: Randomised and Online algorithms - with emphasis placed on the algorithm itself. The coverage of both fields are timely as the ubiquity of Randomised algorithms are expressed through the emergence of cryptography while Online algorithms are essential in numerous fields as diverse as operating systems and stock market predictions. While being relatively short to ensure the essentiality of content, a strong focus has been placed on self-containment, introducing the idea of pre/post-conditions and loop invariants to readers of all backgrounds. Containing programming exercises in Python, solutions will also be placed on the book's website.
This two-volume book describes the most common IP routing protocols used today, explaining the underlying concepts of each protocol and how the protocol components and processes fit within the typical router. Unlike other books, this title is not vendor focused. Volume 1 discusses fundamental concepts of IP routing and distance-vector routing protocols (RIPv2 and EIGRP). Volume 2 focuses on link-state routing protocols (OSPF and IS-IS) and the only path-vector routing protocol in use today (BGP). The volumes explain the types of databases each routing protocol uses, how the databases are constructed and managed, and how the various protocol components and processes, relate and interact with the databases. They also describe the routing protocols from a systems perspective, recognizing the most important routing and packet forwarding components and functions of a router. An illustrated description of IP routing protocols is given using real-world network examples. The books are presented from a practicing engineer's perspective, linking theory and fundamental concepts to common practices and real-world examples. The discussion is presented in a simple style to make it comprehensible and appealing to undergraduate and graduate level students, research and practicing engineers, scientists, IT personnel, and network engineers.
Large-Scale Simulation: Models, Algorithms, and Applications gives you firsthand insight on the latest advances in large-scale simulation techniques. Most of the research results are drawn from the authors papers in top-tier, peer-reviewed, scientific conference proceedings and journals. The first part of the book presents the fundamentals of large-scale simulation, including high-level architecture and runtime infrastructure. The second part covers middleware and software architecture for large-scale simulations, such as decoupled federate architecture, fault tolerant mechanisms, grid-enabled simulation, and federation communities. In the third part, the authors explore mechanisms such as simulation cloning methods and algorithms that support quick evaluation of alternative scenarios. The final part describes how distributed computing technologies and many-core architecture are used to study social phenomena. Reflecting the latest research in the field, this book guides you in using and further researching advanced models and algorithms for large-scale distributed simulation. These simulation tools will help you gain insight into large-scale systems across many disciplines.
This book contains a collection of high-quality papers describing the results of relevant investigations and cutting-edge technologies, aimed at improving key aspects of real life, including major challenges such as the development of smart cities, smart buildings, smart grids, and the reduction of the impact of human activities on the environment. Sustainability requires the use of green technologies and techniques and good practices. Artificial intelligence seems to be an appropriate approach to optimize the use of resources. The main focus of this book is the dissemination of novel and innovative technologies, techniques and applications of artificial intelligence, computing and information and communications technologies, and new digital services such as digital marketing, smart tourism, smart agriculture, green and renewable energy sources. Besides, this book focuses on nurturing energy trends including renewable energies, smart grids, human activity impact, communication, behaviour, and social development, and quality of life improvement fields based on the innovative use of sensors, big data and the Internet of things (IoT), telecommunications and machine learning.
Edited by professionals with years of experience, this book provides an introduction to the theory of evolutionary algorithms and single- and multi-objective optimization, and then goes on to discuss to explore applications of evolutionary algorithms for many uses with real-world applications. Covering both the theory and applications of evolutionary computation, the book offers exhaustive coverage of several topics on nontraditional evolutionary techniques, details working principles of new and popular evolutionary algorithms, and discusses case studies on both scientific and real-world applications of optimization
This book establishes the foundations needed to realize the ultimate goals for artificial intelligence, such as autonomy and trustworthiness. Aimed at scientists, researchers, technologists, practitioners, and students, it brings together contributions offering the basics, the challenges and the state-of-the-art on trusted autonomous systems in a single volume. The book is structured in three parts, with chapters written by eminent researchers and outstanding practitioners and users in the field. The first part covers foundational artificial intelligence technologies, while the second part covers philosophical, practical and technological perspectives on trust. Lastly, the third part presents advanced topics necessary to create future trusted autonomous systems. The book augments theory with real-world applications including cyber security, defence and space.
Combinatorial Scientific Computing explores the latest research on creating algorithms and software tools to solve key combinatorial problems on large-scale high-performance computing architectures. It includes contributions from international researchers who are pioneers in designing software and applications for high-performance computing systems. The book offers a state-of-the-art overview of the latest research, tool development, and applications. It focuses on load balancing and parallelization on high-performance computers, large-scale optimization, algorithmic differentiation of numerical simulation code, sparse matrix software tools, and combinatorial challenges and applications in large-scale social networks. The authors unify these seemingly disparate areas through a common set of abstractions and algorithms based on combinatorics, graphs, and hypergraphs. Combinatorial algorithms have long played a crucial enabling role in scientific and engineering computations and their importance continues to grow with the demands of new applications and advanced architectures. By addressing current challenges in the field, this volume sets the stage for the accelerated development and deployment of fundamental enabling technologies in high-performance scientific computing.
On the surface, matrix theory and graph theory seem like very different branches of mathematics. However, adjacency, Laplacian, and incidence matrices are commonly used to represent graphs, and many properties of matrices can give us useful information about the structure of graphs. Applications of Combinatorial Matrix Theory to Laplacian Matrices of Graphs is a compilation of many of the exciting results concerning Laplacian matrices developed since the mid 1970s by well-known mathematicians such as Fallat, Fiedler, Grone, Kirkland, Merris, Mohar, Neumann, Shader, Sunder, and more. The text is complemented by many examples and detailed calculations, and sections followed by exercises to aid the reader in gaining a deeper understanding of the material. Although some exercises are routine, others require a more in-depth analysis of the theorems and ask the reader to prove those that go beyond what was presented in the section. Matrix-graph theory is a fascinating subject that ties together two seemingly unrelated branches of mathematics. Because it makes use of both the combinatorial properties and the numerical properties of a matrix, this area of mathematics is fertile ground for research at the undergraduate, graduate, and professional levels. This book can serve as exploratory literature for the undergraduate student who is just learning how to do mathematical research, a useful "start-up" book for the graduate student beginning research in matrix-graph theory, and a convenient reference for the more experienced researcher.
Synthetic Aperture Radar Automatic Detection Algorithms (SARADA) for Oil Spills conveys the pivotal tool required to fully comprehend the advanced algorithms in radar monitoring and detection of oil spills, particularly quantum computing and algorithms as a keystone to comprehending theories and algorithms behind radar imaging and detection of marine pollution. Bridging the gap between modern quantum mechanics and computing detection algorithms of oil spills, this book contains precise theories and techniques for automatic identification of oil spills from SAR measurements. Based on modern quantum physics, the book also includes the novel theory on radar imaging mechanism of oil spills. With the use of precise quantum simulation of trajectory movements of oil spills using a sequence of radar images, this book demonstrates the use of SARADA for contamination by oil spills as a promising novel technique. Key Features: Introduces basic concepts of a radar remote sensing. Fills a gap in the knowledge base of quantum theory and microwave remote sensing. Discusses the important aspects of oil spill imaging in radar data in relation to the quantum theory. Provides recent developments and progresses of automatic detection algorithms of oil spill from radar data. Presents 2-D oil spill radar data in 4-D images.
This book describes a complete revolution in software engineering based on complexity science through the establishment of NSE - Nonlinear Software Engineering paradigm which complies with the essential principles of complexity science, including the Nonlinearity principle, the Holism principle, the Complexity Arises From Simple Rules principle, the Initial Condition Sensitivity principle, the Sensitivity to Change principle, the Dynamics principle, the Openness principle, the Self-organization principle, and the Self-adaptation principle. The aims of this book are to offer revolutionary solutions to solve the critical problems existing with the old-established software engineering paradigm based on linear thinking and simplistic science complied with the superposition principle, and make it possible tohelp software development organizations double their productivity, halve their cost, and remove 99% to 99.99% of the defects in their software products, and efficiently handle software complexity, conformity, visibility, and changeability. It covers almost all areas in software engineering. The tools NSE_CLICK- an automatic acceptance testing platform for outsourcing (or internally developed) C/C++ products, and NSE_CLICK_J - an automatic acceptance testing platform for outsourcing (or internally developed) Java products are particularly designed for non-technical readers to view/review how the acceptance testing of a software product developed with NSE can be performed automatically, and how the product developed with NSE is truly maintainable at the customer site. "
This book delivers theoretical and practical knowledge of Genetic Algorithms (GA) for the purpose of practical applications. It provides a methodology for a GA-based search strategy with the integration of several Artificial Life and Artificial Intelligence techniques, such as memetic concepts, swarm intelligence, and foraging strategies. The development of such tools contributes to better optimizing methodologies when addressing tasks from areas such as robotics, financial forecasting, and data mining in bioinformatics.The emphasis of this book is on applicability to the real world. Tasks from application areas - optimization of the trading rule in foreign exchange (FX) and stock prices, economic load dispatch in power system, exit/door placement for evacuation planning, and gene regulatory network inference in bioinformatics - are studied, and the resultant empirical investigations demonstrate how successful the proposed approaches are when solving real-world tasks of great importance.
First developed in the early 1980s by Lenstra, Lenstra, and Lov sz, the LLL algorithm was originally used to provide a polynomial-time algorithm for factoring polynomials with rational coefficients. It very quickly became an essential tool in integer linear programming problems and was later adapted for use in cryptanalysis. This book provides an introduction to the theory and applications of lattice basis reduction and the LLL algorithm. With numerous examples and suggested exercises, the text discusses various applications of lattice basis reduction to cryptography, number theory, polynomial factorization, and matrix canonical forms.
The book is an authoritative collection of contributions by leading experts on the topics of fuzzy logic, multi-valued logic and neural network. Originally written as an homage to Claudio Moraga, seen by his colleagues as an example of concentration, discipline and passion for science, the book also represents a timely reference guide for advance students and researchers in the field of soft computing, and multiple-valued logic.
Evolutionary Algorithms (EAs) are population-based, stochastic search algorithms that mimic natural evolution. Due to their ability to find excellent solutions for conventionally hard and dynamic problems within acceptable time, EAs have attracted interest from many researchers and practitioners in recent years. This book "Variants of Evolutionary Algorithms for Real-World Applications" aims to promote the practitioner's view on EAs by providing a comprehensive discussion of how EAs can be adapted to the requirements of various applications in the real-world domains. It comprises 14 chapters, including an introductory chapter re-visiting the fundamental question of what an EA is and other chapters addressing a range of real-world problems such as production process planning, inventory system and supply chain network optimisation, task-based jobs assignment, planning for CNC-based work piece construction, mechanical/ship design tasks that involve runtime-intense simulations, data mining for the prediction of soil properties, automated tissue classification for MRI images, and database query optimisation, among others. These chapters demonstrate how different types of problems can be successfully solved using variants of EAs and how the solution approaches are constructed, in a way that can be understood and reproduced with little prior knowledge on optimisation.
This book provides theoretical and practical knowledge on AI and swarm intelligence. It provides a methodology for EA (evolutionary algorithm)-based approach for complex adaptive systems with the integration of several meta-heuristics, e.g., ACO (Ant Colony Optimization), ABC (Artificial Bee Colony), and PSO (Particle Swarm Optimization), etc. These developments contribute towards better problem-solving methodologies in AI. The book also covers emerging uses of swarm intelligence in applications such as complex adaptive systems, reaction-diffusion computing, and diffusion-limited aggregation, etc. Another emphasis is its real-world applications. We give empirical examples from real-world problems and show that the proposed approaches are successful when addressing tasks from such areas as swarm robotics, silicon traffics, image understanding, Vornoi diagrams, queuing theory, and slime intelligence, etc. Each chapter begins with the background of the problem followed by the current state-of-the-art techniques of the field, and ends with a detailed discussion. In addition, the simulators, based on optimizers such as PSO and ABC complex adaptive system simulation, are described in detail. These simulators, as well as some source codes, are available online on the author's website for the benefit of readers interested in getting some hands-on experience of the subject. The concepts presented in this book aim to promote and facilitate the effective research in swarm intelligence approaches in both theory and practice. This book would also be of value to other readers because it covers interdisciplinary research topics that encompass problem-solving tasks in AI, complex adaptive systems, and meta-heuristics.
Solving nonsmooth optimization (NSO) problems is critical in many practical applications and real-world modeling systems. The aim of this book is to survey various numerical methods for solving NSO problems and to provide an overview of the latest developments in the field. Experts from around the world share their perspectives on specific aspects of numerical NSO. The book is divided into four parts, the first of which considers general methods including subgradient, bundle and gradient sampling methods. In turn, the second focuses on methods that exploit the problem's special structure, e.g. algorithms for nonsmooth DC programming, VU decomposition techniques, and algorithms for minimax and piecewise differentiable problems. The third part considers methods for special problems like multiobjective and mixed integer NSO, and problems involving inexact data, while the last part highlights the latest advancements in derivative-free NSO. Given its scope, the book is ideal for students attending courses on numerical nonsmooth optimization, for lecturers who teach optimization courses, and for practitioners who apply nonsmooth optimization methods in engineering, artificial intelligence, machine learning, and business. Furthermore, it can serve as a reference text for experts dealing with nonsmooth optimization.
This two-volume book describes the most common IP routing protocols used today, explaining the underlying concepts of each protocol and how the protocol components and processes fit within the typical router. Unlike other books, this title is not vendor focused. Volume 1 discusses fundamental concepts of IP routing and distance-vector routing protocols (RIPv2 and EIGRP). Volume 2 focuses on link-state routing protocols (OSPF and IS-IS) and the only path-vector routing protocol in use today (BGP). The volumes explain the types of databases each routing protocol uses, how the databases are constructed and managed, and how the various protocol components and processes, relate and interact with the databases. They also describe the routing protocols from a systems perspective, recognizing the most important routing and packet forwarding components and functions of a router. An illustrated description of IP routing protocols is given using real-world network examples. The books are presented from a practicing engineer's perspective, linking theory and fundamental concepts to common practices and real-world examples. The discussion is presented in a simple style to make it comprehensible and appealing to undergraduate and graduate level students, research and practicing engineers, scientists, IT personnel, and network engineers.
The notion of swarm intelligence was introduced for describing decentralized and self-organized behaviors of groups of animals. Then this idea was extrapolated to design groups of robots which interact locally to cumulate a collective reaction. Some natural examples of swarms are as follows: ant colonies, bee colonies, fish schooling, bird flocking, horse herding, bacterial colonies, multinucleated giant amoebae Physarum polycephalum, etc. In all these examples, individual agents behave locally with an emergence of their common effect. An intelligent behavior of swarm individuals is explained by the following biological reactions to attractants and repellents. Attractants are biologically active things, such as food pieces or sex pheromones, which attract individuals of swarm. Repellents are biologically active things, such as predators, which repel individuals of swarm. As a consequence, attractants and repellents stimulate the directed movement of swarms towards and away from the stimulus, respectively. It is worth noting that a group of people, such as pedestrians, follow some swarm patterns of flocking or schooling. For instance, humans prefer to avoid a person considered by them as a possible predator and if a substantial part of the group in the situation of escape panic (not less than 5%) changes the direction, then the rest follows the new direction, too. Some swarm patterns are observed among human beings under the conditions of their addictive behavior such as the behavior of alcoholics or gamers. The methodological framework of studying swarm intelligence is represented by unconventional computing, robotics, and cognitive science. In this book we aim to analyze new methodologies involved in studying swarm intelligence. We are going to bring together computer scientists and cognitive scientists dealing with swarm patterns from social bacteria to human beings. This book considers different models of simulating, controlling, and predicting the swarm behavior of different species from social bacteria to humans.
In recent years, machine learning has gained a lot of interest. Due to the advances in processor technology and the availability of large amounts of data, machine learning techniques have provided astounding results in areas such as object recognition or natural language processing. New approaches, e.g. deep learning, have provided groundbreaking outcomes in fields such as multimedia mining or voice recognition. Machine learning is now used in virtually every domain and deep learning algorithms are present in many devices such as smartphones, cars, drones, healthcare equipment, or smart home devices. The Internet, cloud computing and the Internet of Things produce a tsunami of data and machine learning provides the methods to effectively analyze the data and discover actionable knowledge. This book describes the most common machine learning techniques such as Bayesian models, support vector machines, decision tree induction, regression analysis, and recurrent and convolutional neural networks. It first gives an introduction into the principles of machine learning. It then covers the basic methods including the mathematical foundations. The biggest part of the book provides common machine learning algorithms and their applications. Finally, the book gives an outlook into some of the future developments and possible new research areas of machine learning and artificial intelligence in general. This book is meant to be an introduction into machine learning. It does not require prior knowledge in this area. It covers some of the basic mathematical principle but intends to be understandable even without a background in mathematics. It can be read chapter wise and intends to be comprehensible, even when not starting in the beginning. Finally, it also intends to be a reference book. Key Features: Describes real world problems that can be solved using Machine Learning Provides methods for directly applying Machine Learning techniques to concrete real world problems Demonstrates how to apply Machine Learning techniques using different frameworks such as TensorFlow, MALLET, R
Exploring how concurrent programming can be assisted by language-level techniques, Introduction to Concurrency in Programming Languages presents high-level language techniques for dealing with concurrency in a general context. It provides an understanding of programming languages that offer concurrency features as part of the language definition. The book supplies a conceptual framework for different aspects of parallel algorithm design and implementation. It first addresses the limitations of traditional programming techniques and models when dealing with concurrency. The book then explores the current state of the art in concurrent programming and describes high-level language constructs for concurrency. It also discusses the historical evolution of hardware, corresponding high-level techniques that were developed, and the connection to modern systems, such as multicore and manycore processors. The remainder of the text focuses on common high-level programming techniques and their application to a range of algorithms. The authors offer case studies on genetic algorithms, fractal generation, cellular automata, game logic for solving Sudoku puzzles, pipelined algorithms, and more. Illustrating the effect of concurrency on programs written in familiar languages, this text focuses on novel language abstractions that truly bring concurrency into the language and aid analysis and compilation tools in generating efficient, correct programs. It also explains the complexity involved in taking advantage of concurrency with regard to program correctness and performance.
Identifying some of the most influential algorithms that are widely used in the data mining community, The Top Ten Algorithms in Data Mining provides a description of each algorithm, discusses its impact, and reviews current and future research. Thoroughly evaluated by independent reviewers, each chapter focuses on a particular algorithm and is written by either the original authors of the algorithm or world-class researchers who have extensively studied the respective algorithm. The book concentrates on the following important algorithms: C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART. Examples illustrate how each algorithm works and highlight its overall performance in a real-world application. The text covers key topics?including classification, clustering, statistical learning, association analysis, and link mining?in data mining research and development as well as in data mining, machine learning, and artificial intelligence courses. By naming the leading algorithms in this field, this book encourages the use of data mining techniques in a broader realm of real-world applications. It should inspire more data mining researchers to further explore the impact and novel research issues of these algorithms.
Full of practical examples, Introduction to Scheduling presents the basic concepts and methods, fundamental results, and recent developments of scheduling theory. With contributions from highly respected experts, it provides self-contained, easy-to-follow, yet rigorous presentations of the material. The book first classifies scheduling problems and their complexity and then presents examples that demonstrate successful techniques for the design of efficient approximation algorithms. It also discusses classical problems, such as the famous makespan minimization problem, as well as more recent advances, such as energy-efficient scheduling algorithms. After focusing on job scheduling problems that encompass independent and possibly parallel jobs, the text moves on to a practical application of cyclic scheduling for the synthesis of embedded systems. It also proves that efficient schedules can be derived in the context of steady-state scheduling. Subsequent chapters discuss scheduling large and computer-intensive applications on parallel resources, illustrate different approaches of multi-objective scheduling, and show how to compare the performance of stochastic task-resource systems. The final chapter assesses the impact of platform models on scheduling techniques. From the basics to advanced topics and platform models, this volume provides a thorough introduction to the field. It reviews classical methods, explores more contemporary models, and shows how the techniques and algorithms are used in practice. |
You may like...
Blended Learning - Concepts…
Information Reso Management Association
Hardcover
R7,371
Discovery Miles 73 710
Current Trends in Cybersecurity and…
Remberto Jimenez, Veronica E O'Neill
Hardcover
R6,810
Discovery Miles 68 100
E-Commerce: Business Models and Service…
Anthony Rocus
Hardcover
PowerShell, IT Pro Solutions…
William R. Stanek, William Stanek
Hardcover
R1,434
Discovery Miles 14 340
|