tu/e algorithms (2il15) – lecture 13 1 wrap-up lecture

20
TU/e Algorithms (2IL15) – Lecture 13 1 Algorithms (2IL15) – Lecture 13 Wrap-up lecture

Upload: kelly-harris

Post on 20-Jan-2018

214 views

Category:

Documents


0 download

DESCRIPTION

TU/e Algorithms (2IL15) – Lecture 13 3 Part II of the course: optimization problems on graphs single-source shortest paths Find shortest path from source vertex to all other vertices all-pairs shortest paths Find shortest paths between all pairs of vertices maximum flow Find maximum flow from source vertex to target vertex maximum bipartite matching Find maximum number of disjoint pairs of vertices with edge between them −

TRANSCRIPT

Page 1: TU/e Algorithms (2IL15) – Lecture 13 1 Wrap-up lecture

TU/e Algorithms (2IL15) – Lecture 13

1

Algorithms (2IL15) – Lecture 13Wrap-up lecture

Page 2: TU/e Algorithms (2IL15) – Lecture 13 1 Wrap-up lecture

TU/e Algorithms (2IL15) – Lecture 13

2

Part I of the course: Optimization Problems

we want to find valid solution minimizing cost (or maximizing profit) always start by investigating structure of optimal solution

backtracking: just try all solutions (pruning when possible)− extra exercises: backtracking algorithms for NP-hard problems

Vertex Cover, 3-SAT, Hamiltonian Cycle, …

greedy algorithms: make choice that seems best, recursively solve remaining subproblem− proof is crucial; make sure you know proof structure by heart− extra exercises: greedy algorithms explained in book

dynamic programming: give recursive formula, fill in table− make sure you know steps to design dynamic-programming

algorithm− extra exercises: dynamic-programming algorithms explained in

book

Page 3: TU/e Algorithms (2IL15) – Lecture 13 1 Wrap-up lecture

TU/e Algorithms (2IL15) – Lecture 13

3

Part II of the course: optimization problems on graphs

single-source shortest pathsFind shortest path from source vertex to all other vertices

all-pairs shortest pathsFind shortest paths between all pairs of vertices

maximum flowFind maximum flow from source vertex to target vertex

maximum bipartite matchingFind maximum number of disjoint pairs of vertices with edge between them

31

8

5

3

32

4

21

2.3

− 2

21

4

Page 4: TU/e Algorithms (2IL15) – Lecture 13 1 Wrap-up lecture

TU/e Algorithms (2IL15) – Lecture 13

4

single-source / all-pairs shortest paths

− you should know and understand the various algorithms SSSP: Bellman-Ford, Dijkstra, algorithm on DAGsAPSP: relation to matrix multiplication, Johnson’s

reweighting− extra exercises: give algorithms, give proofs of important lemmas

maximum flow + maximum bipartite matching

− definition of flow network, flow − Ford-Fulkerson method + Edmonds-Karp implementation(concept of augmenting flow, residual path, etcetera)− relation between flows and cuts (e.g. max flow = min cut)− integer capacities: there is always a max flow that is integral basis for many applications, e.g. for max bipartite matching)

Page 5: TU/e Algorithms (2IL15) – Lecture 13 1 Wrap-up lecture

TU/e Algorithms (2IL15) – Lecture 13

5

Part III of the course: miscellaneous topicsPart III of the course: Miscellaneous topics

NP-completeness− definitions and concepts: P, NP, reductions− list of NP-complete problems

you should be able to reproduce NP-completeness proofs …

(they also teach you tricks for other NP-completeness proofs)

approximation algorithms− definitions and concepts: approximation factor, (F)PTAS− how to prove approximation ratio: compare to lower (upper) bound

linear programming− definitions and concepts: LP, standard form integer LP, 0/1-LP− how to model a problem as an LP

Page 6: TU/e Algorithms (2IL15) – Lecture 13 1 Wrap-up lecture

TU/e Algorithms (2IL15) – Lecture 13

6

The exam

most exercises are of the same type as the homework exercises about 1/3 of exercises is (almost) identical to homework

exercises exam may also have some questions where the answer can be

found literally on the slides or in the book (reproduce algorithm or proof, definitions)

How to prepare1. study the slides (only look into the book when there are things in

the slides that you do not understand)2. solve all the homework exercises again !

3. reproduce algorithms / proofs from the book

Page 7: TU/e Algorithms (2IL15) – Lecture 13 1 Wrap-up lecture

TU/e Algorithms (2IL15) – Lecture 13

7

What we did not do in the course …

… lots, in particular …

algorithms for big data

geometric algorithms

algorithms for geographic data

Page 8: TU/e Algorithms (2IL15) – Lecture 13 1 Wrap-up lecture

TU/e Algorithms (2IL15) – Lecture 13

8

Algorithms for Big Data

diskinternal memory

L3 cacheL2 cacheL1 cache

ALUregisters

Data, data, everywhere. Economist 2010

Page 9: TU/e Algorithms (2IL15) – Lecture 13 1 Wrap-up lecture

TU/e Algorithms (2IL15) – Lecture 13

9

I/O- and caching behavior

analysis of running time: (asymptotically) determine number of elementary operations as a function of input size

basic assumption: elementary operations take roughly same amount of time

is this justified?

Not when data is stored on disk: disk operations can be factor 100,000 (or more)slower than operations on data in main memory

− how can we design I/O-efficient algorithms?− how should we analyze such algorithms?− can / should we also worry about caching ?

diskinternal memory

L3 cacheL2 cacheL1 cache

ALUregisters

Page 10: TU/e Algorithms (2IL15) – Lecture 13 1 Wrap-up lecture

TU/e Algorithms (2IL15) – Lecture 13

10

streaming algorithms

data stream model: data is read sequentially in one (or few) passes size of the working memory is much smaller than size of data

example: traffic going through high speed routers (data can not be revisited)

− how can we design algorithms for data streams?(e.g. maintain approximate median of stream of numbers)

− how should we analyze such algorithms?

take Advanced Algorithms(big data + more approximation algorithms)

Page 11: TU/e Algorithms (2IL15) – Lecture 13 1 Wrap-up lecture

TU/e Algorithms (2IL15) – Lecture 13

11

Geometric algorithms

Page 12: TU/e Algorithms (2IL15) – Lecture 13 1 Wrap-up lecture

TU/e Algorithms (2IL15) – Lecture 13

12

computer-aided design and manufacturing (CAD/CAM)

3D model of power plant (12.748.510 triangles)

motion planning virtual walkthroughs

Page 13: TU/e Algorithms (2IL15) – Lecture 13 1 Wrap-up lecture

TU/e Algorithms (2IL15) – Lecture 13

13

3D copier

surface reconstruction

3D scanner

3D printer

1

23 4 5 6 7 8

9

Page 14: TU/e Algorithms (2IL15) – Lecture 13 1 Wrap-up lecture

TU/e Algorithms (2IL15) – Lecture 13

14

many areas where geometry plays important role: geographic information systems computer-aided design and manufacturing robotics and motion planning computer graphics and virtual reality databases structural computational biology and more …

30 45 age

salary

30.000

50.000

Page 15: TU/e Algorithms (2IL15) – Lecture 13 1 Wrap-up lecture

TU/e Algorithms (2IL15) – Lecture 13

15

Geometric data structures

store geometric data in 2-, 3- or higher dimensional space such that certain queries can be answered efficiently

applications: GIS, graphics and virtual reality, …

Examples:

range searching

nearest-neighbor searching

point location

want to know more about algorithms and data structures for spatial data?

take Geometric Algorithms

Page 16: TU/e Algorithms (2IL15) – Lecture 13 1 Wrap-up lecture

TU/e Algorithms (2IL15) – Lecture 13

Algorithms for Geographic Data

Page 17: TU/e Algorithms (2IL15) – Lecture 13 1 Wrap-up lecture

TU/e Algorithms (2IL15) – Lecture 13

17

geographic information systems (GIS)

Mississippi delta

MemphisMemphis

MemphisMemphis

ArlingtonArlington

30 cities:430 = 1018 possibilities

Page 18: TU/e Algorithms (2IL15) – Lecture 13 1 Wrap-up lecture

TU/e Algorithms (2IL15) – Lecture 13

automated cartography

examples:map labelingscaling and simplification

schematization

maps for various types of data, e.g., flows

18

Page 19: TU/e Algorithms (2IL15) – Lecture 13 1 Wrap-up lecture

TU/e Algorithms (2IL15) – Lecture 13

19

trajectory data

data of animals, humans, vehicles, …

Examples of analysis tasks: How similar are two trajectories? How to find clusters? How to represent a cluster? How to simplify a trajectory? …

take Algorithms for Geographic Data

Page 20: TU/e Algorithms (2IL15) – Lecture 13 1 Wrap-up lecture

TU/e Algorithms (2IL15) – Lecture 13

20

THE END

well, except for the exam …

comments / suggestions for improvements are welcome