Advanced Algorithms in Java

Advanced Algorithms in Java

English | MP4 | AVC 1280×720 | AAC 48KHz 2ch | 10 Hours | 1.27 GB

Breadth-first search, depth-first search, shortest path, arbitrage, strongly connected components and graph algorithms

This course is about advanced algorithms focusing on graph traversal, shortest path problems, spanning trees and maximum flow problems and a lots of its applications from Google Web Crawler to taking advantage of stock market arbitrage situations.

The course is going to take approximately 11 hours to completely but I highly suggest you typing these algorithms out several times in order to get a good grasp of it. You can download the source code of the whole course at the last lecture.

In the first section we are going to talk about the main graph traversal algorithms (BFS, DFS) and its applications of course such as WebCrawler or topological ordering. The next section is about shortest path algorithms: there are several applications which we are going to be familiar with from image processing to FOREX arbitrage. The next chapter is about minimum spanning trees and clustering algorithms. Then, we are going to learn about the maximum flow problem, maybe the most important algorithm in this course. The last chapter is about how to solve NP problems such as the travelling salesman problem with simulated annealing.

You should definitely take this course if you are interested in advanced topics concerning algorithms. There are a bunch of fields where these methods can be used: from software engineering to scientific research.

What Will I Learn?

  • Learn about the applications of data structures
  • Implement advanced algorithms efficiently
  • Able to move towards advanced topics such as machine learning or big data analysis
  • Get a good grasp of algorithmic thinking
  • Get to know graph algorithms: BFS, DFS, shortest paths and spanning trees
Table of Contents

Introduction
1 Introduction
2 Graph theory introduction
3 Complexity theory

Breadth-First Search
4 Breadth-first search introduction
5 BFS implementation
6 BFS – WebCrawler (core of search engines)
7 BFS – WebCrawler implementation

Depth-First Search
8 Depth-first search introduction
9 DFS implementation I – with stack
10 DFS implementation II – with recursion
11 Topological ordering introduction
12 Topological ordering implementation I
13 Topological ordering implementation II
14 Cycle detection introduction
15 Cycle detection implementation I
16 Cycle detection implementation II
17 Maze solving algorithm implementation
18 Memory management_ BFS vs DFS

Shortest Path Algorithms
19 Dijkstra algorithm introduction – basics
20 Dijkstra algorithm introduction – algorithm
21 Dijkstra algorithm introduction – example
22 Bellman-Ford algorithm introduction
23 Dijkstra algorithm introduction – with adjacency matrix
24 Shortest path algorithms applications
25 Dijkstra algorithm implementation I
26 Dijkstra algorithm implementation II
27 Bellman-Ford algorithm implementation I
28 Bellman-Ford algorithm implementation II
29 DAG shortest path implementation
30 Arbitrage situations on FOREX introduction
31 Arbitrage situations on FOREX implementation
32 Longest path implementation

Spanning Trees
33 Union-find data structure (disjoint sets)
34 Union-find data structure illustration
35 Spanning trees introduction – Kruskal algorithm
36 Kruskal algorithm implementation I
37 Kruskal algorithm implementation II – disjoint set
38 Kruskal algorithm implementation III
39 Spanning trees introduction – lazy Prim’s algorithm
40 Prims lazy algorithm implementation I
41 Prims lazy algorithm implementation II – the core
42 Spanning trees introduction – eager Prim’s algorithm
43 Eager Prim’s algorithm implementation
44 Applications of spanning trees

Strongly Connected Components
45 Strongly connected components introduction
46 Kosaraju algorithm introduction
47 Kosaraju implementation I – the Graph class
48 Kosaraju implementation II
49 Kosaraju algorithm implementation III – test
50 Tarjan algorithm introduction
51 Tarjan implementation I
52 Tarjan implementation II – test
53 Applications of strongly connected components

Maximum Flow Problem
54 Maximum flow introduction – basics
55 Maximum flow introduction – properties
56 Maximum flow introduction – cuts
57 Maximum flow introduction – residual networks
58 Maximum flow introduction – Ford-Fulkerson algorithm
59 Maximum flow introduction – example
60 Maximum flow introduction – applications
61 Maximum flow implementation I – Edge_ Vertex
62 Maximum flow implementation II – FlowNetwork class
63 Maximum flow implementation III – Ford-Fulkerson algorithm
64 Maximum flow implementation IV – augmentation
65 Maximum flow implementation V – testing
66 Bipartite matching problem introduction
67 Bipartite matching implementation

Travelling Salesman Problem (TSP)
68 Travelling salesman problem introduction
69 TSP implementation with simulated annealing I – city
70 TSP implementation with simulated annealing II – tour
71 TSP implementation with simulated annealing III – algorithm
72 TSP implementation with simulated annealing IV – testing
73 Tabu search introduction
74 Tabu search introduction II

Euler cycle – Chinese Postman Problem
75 Euler’s cycles introduction

Source Code & Slides
76 Source code
77 Slides
78 DISCOUNT FOR OTHER COURSES!