English | MP4 | AVC 1920×1080 | AAC 48KHz 2ch | 3h 35m | 502 MB
Learn functional programming in Scala by implementing various graph algorithms
Scala’s functional programming features are a boon to help you design “easy to reason about” systems to control growing software complexities.In this course we practise many functional techniques by solving various graph problems. We start by looking at how we can represent graph structures in an efficient functional manner. Then we explore both the breadth and depth first search graph traversal techniques. Later we use this techniques to show how they can be used for topological sorting and cycle detection. In this course we also describe more complex algorithms such as finding the shortest path and maximal flow networks. All of these solutions are illustrated with easy to understand diagrams and animations. Special care is taken when writing solution so that the principles of functional programming are followed.
By the end of the course, you will be well-versed in all the functional concepts of Scala and you will have refreshed your knowledge of graph algorithms.
The course starts off with explaining the basic graph algorithms. We discuss each algorithm briefly before proceeding to implement it in Scala. This way, you understand not only the functional implementation, but also the underlying concepts behind the algorithm.
What You Will Learn
- Understand adjacency list and matrix representation
- Learn BFS vs DFS graph traversal and the implemented in a functional manner
- Implement a topological sort algorithm
- Discover how to implement a cycle detection in graphs.
- Understand and develop the existing Dijkstra’s shortest path algorithm,
- Understand what is max flow in a flow network and implement the Ford-Fulkerson method and the Edmonds-Karp algorithm
Table of Contents
Graph Structures
1 The Course Overview
2 Representing Graphs
3 Functional Graphs
4 Developing Functional Graphs
Traversing Graphs
5 Depth First Search
6 Depth First Search Implementation
7 Breadth First Search
8 Breadth First Search Implementation
Topological Sorting
9 Practical Applications
10 KahnтАЩs Algorithm
11 KahnтАЩs Implementation
12 DFS for Topological Sorting
13 DFS for Sorting Implementation
Cycle Detection in Graphs
14 Practical Applications
15 DFS Cycle Detection Algorithm
16 DFS Cycle Implementation
17 FloydтАЩs Algorithm
18 FloydтАЩs Implementation
Shortest Path
19 Problem Explanation
20 DijkstraтАЩs Algorithm
21 DijkstraтАЩs Implementation
Maximum Flow
22 Problem Explanation
23 Solving Max Flow
24 Matrix Representation in Scala
25 Find Path Implementation
26 Max Flow Implementation
Resolve the captcha to access the links!