Algorithm Design A Methodological Approach 150 Problems and Detailed Solutions 1st Edition by Patrick Bosc, Marc Guyomard, Laurent Miclet – Ebook PDF Instant Download/Delivery: 9781003334590 ,1003334598
Full download Algorithm Design A Methodological Approach 150 Problems and Detailed Solutions 1st Edition after payment
Product details:
ISBN 10: 1003334598
ISBN 13: 9781003334590
Author: Patrick Bosc, Marc Guyomard, Laurent Miclet
Algorithm Design A Methodological Approach 150 Problems and Detailed Solutions 1st Edition Table of contents:
1 Mathematics and computer science: some useful notions
1.1 Reasoning and proving
1.1.1 Propositional and predicate calculus
1.1.2 Proof by contradiction
1.1.3 Proof by induction with one index
1.1.3.1 Proof by simple induction
1.1.3.2 Proof by partial induction
1.1.3.3 Proof by strong induction
1.1.4 Partition induction
1.1.5 Foundation of the proof by induction
1.1.6 Proof by induction with several indexes
1.2 Recurrence relations
1.2.1 Generalities, examples and closed forms
1.2.2 Establishing and computing a recurrence relation
1.2.2.1 Principles
1.2.2.2 Some examples
1.2.2.3 Designing the algorithm associated with a recurrence
1.3 Recurrence, induction, recursion, etc.
1.4 Sets
1.4.1 Basic notations
1.4.2 Definition of sets
1.4.3 Operations on sets
1.4.4 Special sets
1.4.5 Relations, functions and arrays
1.4.5.1 Relations
1.4.5.2 Functions
1.4.5.3 Arrays
1.4.6 Bags
1.4.7 Cartesian product and inductive structures
1.4.8 Strings and sequences
1.5 Graphs
1.5.1 Directed graphs
1.5.2 Undirected graphs
1.5.3 Weighted graphs
1.6 Trees
1.7 Priority queues
1.7.1 Definition
1.7.2 Implementations
1.8 FIFO and LIFO queues
1.9 Problems
1.10 Solutions
2 Complexity of an algorithm
2.1 Reminders
2.1.1 Algorithm
2.1.2 Algorithmics, complexity of an algorithm
2.1.3 Minimum and maximum complexity of an algorithm
2.1.4 Orders of growth
2.1.5 Some examples of complexity
2.1.6 About elementary operations
2.1.7 Practical computing time
2.1.8 Pseudo-polynomial problems
2.2 Problems
2.3 Solutions
3 Specification, invariants, and iteration
3.1 Principle for the construction of loops by invariant
3.2 An introductory example: the Euclidian division
3.3 Useful techniques
3.3.1 Sequential composition
3.3.2 Predicate strengthening and weakening
3.3.3 Strengthening by the introduction of programming variables
3.4 Heuristics for the discovery of invariants
3.4.1 Breakup of the postcondition
3.4.2 Hypothesis of the work carried out partly
3.4.3 Strengthening the invariant
3.5 About bounded linear search
3.5.1 An example
3.5.2 Special case and related pattern
3.6 Some key points to develop a loop
3.7 Problems
3.8 Solutions
4 Reduce and conquer, recursion
4.1 A few reminders about recursion
4.2 Recurrence relation and recursion
4.3 “Reduce and conquer” and its complexity
4.3.1 Presentation
4.3.2 Example 1: the spiral pattern
4.3.3 Example 2: Hanoi towers
4.4 What should be reminded for “Reduce and conquer”
4.5 Problems
4.6 Solutions
5 Generate and test
5.1 Fundamentals
5.1.1 Principle
5.1.2 Functions and related frames
5.1.2.1 Total functions
5.1.2.2 The case of partial functions
5.1.3 Patterns for “Generate and test”
5.1.3.1 Patterns derived from “AllSolutions”
5.1.3.2 Patterns derived from “OptimalSolution”
5.1.3.3 Patterns derived from “OneSolution”
5.1.3.4 Conclusion
5.2 An example: the optimal partition of an array
5.2.1 The basic problem
5.2.2 The initial problem with a strengthened precondition and a strengthened postcondition
5.2.3 The initial problem with a strengthened precondition
5.3 What should be remembered from “Generate and test”
5.4 Exercises
5.5 Solutions
6 Branch and bound
6.1 Introduction
6.1.1 Branch and bound: the principle
6.1.1.1 The separation phase
6.1.1.2 The selection phase
6.1.1.3 The evaluation phase
6.1.2 The generic “Branch and bound” algorithm
6.1.2.1 The priority queue
6.1.2.2 Construction of the generic “Branch and bound” algorithm
6.1.2.3 The generic “Branch and bound” algorithm itself
6.1.3 An interesting special case for the functions f* and f
6.1.4 An example: the traveling salesman
6.1.4.1 Initial choices
6.1.4.2 The algorithm
6.1.4.3 First case study: the zero heuristic function
6.1.4.4 Second case study: uniform cost
6.2 What should be remembered about the “Branch and bound” approach
6.3 Problems
6.4 Solutions
7 Greedy algorithms
7.1 Introduction
7.1.1 Presentation
7.1.2 Proving that a greedy algorithm is exact or optimal
7.1.3 An example: task scheduling on a photocopier
7.1.4 The “lead run” method
7.1.5 Proof a posteriori: the transformation technique
7.2 What to remember about greedy methods
7.3 Problems
7.4 Solutions
8 Divide and conquer
8.1 Introduction
8.1.1 Presentation and principle
8.1.2 An example: merge-sort
8.1.3 General pattern for “Divide and conquer”
8.1.4 A typology of “Divide and conquer” algorithms
8.1.5 Complexity of “Divide and conquer”
8.1.5.1 Introduction to the master theorem
8.1.5.2 Other types of recurrence equations
8.1.6 About the size of the problem
8.2 What to remember about the DaC approach
8.3 Problems
8.4 Solutions
9 Dynamic programming
9.1 Overview
9.2 An example: the longest sub-sequence common to two sequences
9.3 What should be remembered to apply dynamic programming
9.4 Problems
9.4.1 Cutting and sharing: one-dimensional problems
9.4.2 Cutting and sharing: two-dimensional problems
9.4.3 Graphs and trees
9.4.4 Sequences
9.4.4.1 Definitions
9.4.4.2 The problem
9.4.5 Images
9.4.6 Games
9.4.7 Pseudo-polynomial problems
9.5 Solutions
Notations
List of problems
Bibliography
Index
People also search for Algorithm Design A Methodological Approach 150 Problems and Detailed Solutions 1st Edition:
what is algorithm design techniques
an introduction to the analysis of algorithms pdf
algorithm design a methodological approach pdf
algorithm design a methodological approach
what are different algorithm design techniques
Tags: Patrick Bosc, Marc Guyomard, Laurent Miclet, Algorithm Design, Detailed Solutions, Methodological Approach