This textbook treats graph colouring as an algorithmic problem, with a strong emphasis on practical applications. The author describes and analyses some of the best-known algorithms for colouring graphs, focusing on whether these heuristics can provide optimal solutions in some cases; how they perform on graphs where the chromatic number is unknown; and whether they can produce better solutions than other algorithms for certain types of graphs, and why.
The introductory chapters explain graph colouring, complexity theory, bounds and constructive algorithms. The...
This textbook treats graph colouring as an algorithmic problem, with a strong emphasis on practical applications. The author describes and analyses...
Graph algorithms is a well-established subject in mathematics and computer science. Beyond classical application fields, like approximation, combinatorial optimization, graphics, and operations research, graph algorithms have recently attracted increased attention from computational molecular biology and computational chemistry. Centered around the fundamental issue of graph isomorphism, this text goes beyond classical graph problems of shortest paths, spanning trees, flows in networks, and matchings in bipartite graphs. Advanced algorithmic results and techniques of practical relevance...
Graph algorithms is a well-established subject in mathematics and computer science. Beyond classical application fields, like approximation, combin...
This stimulating textbook presents a broad and accessible guide to the fundamentals of discrete mathematics, highlighting how the techniques may be applied to various exciting areas in computing. The text is designed to motivate and inspire the reader, encouraging further study in this important skill.
Features: This book provides an introduction to the building blocks of discrete mathematics, including sets, relations and functions; describes the basics of number theory, the techniques of induction and recursion, and the applications of mathematical sequences,...
This stimulating textbook presents a broad and accessible guide to the fundamentals of discrete mathematics, highlighting how the techniques may be...
This highly accessible textbook teaches programming from first principles. In common with many programming courses, it uses Python as the introductory programming language before going on to use Java as the vehicle for more advanced programming concepts.
The first part, which teaches Python, covers fundamental programming concepts, such as data types and control structures and functions. It introduces more complex data types such as lists and dictionaries and also deals with file handling. It introduces object-oriented concepts and ends with a case study bringing together all the...
This highly accessible textbook teaches programming from first principles. In common with many programming courses, it uses Python as the introduct...
This textbook presents a systematic methodology for program development by using design recipes, i.e. a series of steps, each with a specific outcome, that takes a problem solver from a problem statement to a working and tested programmed solution. It introduces the reader to generative recursion, heuristic searching, accumulative recursion, tail recursion, iteration, mutation, loops, program correctness, and vectors. It uses video game development to make the content fun while at the same time teaching problem-solving techniques.
The book is divided into four parts. Part I...
This textbook presents a systematic methodology for program development by using design recipes, i.e. a series of steps, each with a specific outco...
This textbook is intended as a guide for programming-language designers and users to better help them understand consequences of design decisions.
The text aims to provide readers with an overview of the design space for programming languages and how design choices affect implementation. It is not a classical compilers book, as it assumes the reader is familiar with basic compiler implementation techniques; nor is it a traditional comparative programming languages book, because it does not go into depth about any particular language, instead taking examples from a wide variety of...
This textbook is intended as a guide for programming-language designers and users to better help them understand consequences of design decisions.<...
The first edition of this textbook was published in 2021. Over the past two years, we have invested in enhancing all aspects of deep learning methods to ensure the book is comprehensive and impeccable. Taking into account feedback from our readers and audience, the author has diligently updated this book.
The second edition of this textbook presents control theory, transformer models, and graph neural networks (GNN) in deep learning. We have incorporated the latest algorithmic advances and large-scale deep learning models, such as GPTs, to align with the current research...
The first edition of this textbook was published in 2021. Over the past two years, we have invested in enhancing all aspects of deep learning metho...
This textbook overviews the whole spectrum of formal methods and techniques that are aimed at verifying correctness of software, and how they can be used in practice. It focuses on techniques whereby the user has some control over the properties that are being checked. More specifically, it shows a wide range of techniques covering the whole spectrum: from abstract system design to implementation, from bug finding to full proofs, and from techniques that are push-button by design and give a yes/no answer to techniques that require the user to provide explicit guidance to steer...
This textbook overviews the whole spectrum of formal methods and techniques that are aimed at verifying correctness of software, and how they can b...