3 4
play

3 - PowerPoint PPT Presentation

3 4


  1. ����� �������������������� ��������� ������������������ 3 ���������������� 4 www.win.tue.nl/~kbuchin/teaching/2IL15/ Lecturer: Kevin Buchin ( MF 6 . 0 9 3 , k.a.buchin @tue.nl) �

  2. ����� �������������������� ��������� Organization of the course Similar to Datastructures • homework exercises • tutorials (for help in solving homework + discussing solutions) • minimum score needed for homework to be admitted to exam • registration via OASE mandatory (at the latest today), register for group this week (Tuesday-Thursday) Literature: same as Datastructures • T. H. Cormen, C. E. Leiserson, R. L. Rivest and C. Stein: Introduction�to�Algorithms (3rd edition). �

  3. ����� �������������������� ��������� Organization of the course Part I: Techniques for optimization backtracking exercises homework set A.1 greedy algorithms exercises dynamic programming I exercises homework set A.2 dynamic programming II exercises Part II: Graph algorithms shortest paths I exercises homework set B.1 shortest paths II exercises max flow exercises homework set B.2 matching exercises Part III: Selected topics NP>hardness I exercises homework set C.1 NP>hardness II exercises approximation algorithms exercises homework set C.2 linear programming exercises �

  4. ����� �������������������� ��������� Planning and so on …: see the course webpage �

  5. ����� �������������������� ��������� Grading Homework (no copying, solutions submitted in pdf by email to instructor) � six sets: two sets for each of the t h ree parts (but: handed in per part, so only three deadlines) � best four sets count, but at least one per part � maximum homework score: 4 x 10 = 40 points register this week for one of the three tutorial groups Exam � need at least 20 points for Homework � maximum score = 10 points Final grade � need at least 5 points for exam, otherwise FAIL � if final exam at least 5: final grade = (homework + 4 exam) / 8 )

  6. ����� �������������������� ��������� Part I: Techniques for optimization /

  7. ����� �������������������� ��������� Optimization problems � for each instance there are (possibly) multiple valid solutions � goal is to find an optimal solution • minimization problem: associate cost to every solution, find min>cost solution • maximization problem: associate profit to every solution, find max>profit solution 4

  8. ����� �������������������� ��������� Optimization problems: examples Traveling Salesman Problem • input = set of n cities with distances between them • valid solution = tour visiting all cities • cost = length of tour C A B C D E F 33 A > 17 17 F B > 15 C > 15 33 A D D > E > E B F > 5

  9. ����� �������������������� ��������� Optimization problems: examples Traveling Salesman Problem • input = set of n cities with distances between them • valid solution = tour visiting all cities • cost = length of tour Knapsack • input = n items, each with a weight and a profit, and value W • valid solution = subset of items whose total weight is ≤ W • profit = total profit of all items in subset solutions: item 1 2 3 4 5 6 1,2,6: weight 18, profit 18 weight 5 7 5 8 11 6 profit 6 7 4.5 10 14 5 W = 18 6

  10. ����� �������������������� ��������� Optimization problems: examples Traveling Salesman Problem • input = set of n cities with distances between them • valid solution = tour visiting all cities • cost = length of tour Knapsack • input = n items, each with a weight and a profit, and value W • valid solution = subset of items whose total weight is ≤ W • profit = total profit of all items in subset solutions: item 1 2 3 4 5 6 1,2,6: weight 18, profit 18 weight 5 7 5 8 11 6 2,5: weight 18, profit 21 profit 6 7 4.5 10 14 5 etcetera W = 18 6

  11. ����� �������������������� ��������� Optimization problems: examples Traveling Salesman Problem • input = set of n cities with distances between them • valid solution = tour visiting all cities • cost = length of tour Knapsack • input = n items, each with a weight and a profit, and value W • valid solution = subset of items whose total weight is ≤ W • profit = total profit of all items in subset Linear Programming minimize: c 1 x 1 + HHH + c n x n subject to: a 1,1 x 1 + HHH + a 1,n x n ≤ b 1 even hard to find any solution! a m,1 x 1 + HHH + a m,n x n ≤ b m �7

  12. ����� �������������������� ��������� Techniques for optimization optimization problems typically involve making choices � backtracking: just try all solutions • can be applied to almost all problems, but gives very slow algorithms • try all options for first choice, for each option, recursively make other choices � greedy algorithms: construct solution iteratively, always make choice that seems best • can be applied to few problems, but gives fast algorithms • only try option that seems best for first choice (greedy choice), recursively make other choices � dynamic programming • in between: not as fast as greedy, but works for more problems ��

  13. ����� �������������������� ��������� Today: backtracking + how to (slightly?) speed it up Example 1: Traveling Salesman Problem (TSP) given: n cities and the (non>negative) distances between them Input: matrix Dist [1.. n ,1.. n ], where Dist� [ i,j ] = distance from i to j goal: find shortest tour visiting all cities and returning to starting city Output: permutation of {1,…,n} such that visiting cities in that order gives min>length tour start w.l.o.g. in city 1 3 6 choices: what is first city to visit ? what is second city to visit ? 1 4 … start what is last city to visit ? 5 2 start ��

  14. ����� �������������������� ��������� Backtracking for TSP: � first city is city 1 � try all remaining cities as next city for each option for next city, recursively try all ways to finish the tour for each recursive call: • remember which choices we already made ( = part of the tour we fixed in earlier calls) • and which choices we still need to make ( = remaining cities, for which we need to decide visiting order) parameters of algorithm � when all choices have been made: compute length of tour, compare to length of shortest tour found so far ��

  15. ����� �������������������� ��������� Parameters: R = sequence of already visited cities (initially: R = city 1) S = set of remaining cities (initially: S = { 2, …, n } ) We want to compute a shortest tour visiting all cities in R� U S , under the condition that the tour starts by visiting the cities from R� in the given order. ���������� TSP_BruteForce1� ( R,�S ) all choices have been made 1. ��� S� is empty 2. ��� � minCost ← length of the tour represented by R 3. ����� minCost ← 8 try all remaining cities as next city 4. ���� each city i� in S i� is next city 5. !�� Remove i� from S , and append i� to R . 6. minCost ← min( minCost,�TSP_BruteForce1� ( R,�S ) ) 7. Reinsert i� in S , and remove i� from R . undo choice 8. ����� � minCost recursively compute best way to make remaining choices ��

  16. ����� �������������������� ��������� Parameters: R = sequence of already visited cities (initially: R = city 1) S = set of remaining cities (initially: S = { 2, …, n } ) We want to compute a shortest tour visiting all cities in R� U S , under the condition that the tour starts by visiting the cities from R� in the given order. ���������� TSP_BruteForce1� ( R,�S ) all choices have been made 1. ��� S� is empty 2. ��� � minCost ← length of the tour represented by R 3. ����� minCost ← 8 try all remaining cities as next city 4. ���� each city i� in S Note: this algorithm computes length of optimal tour, not tour itself i� is next city 5. !�� Remove i� from S , and append i� to R . 6. minCost ← min( minCost,�TSP_BruteForce1� ( R,�S ) ) 7. Reinsert i� in S , and remove i� from R . undo choice 8. ����� � minCost recursively compute best way to make remaining choices �)

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend