1 / 33

CS5234 Combinatorial and Graph Algorithms

CS5234 Combinatorial and Graph Algorithms. Welcome!. Combinatorial & Graph Algorithms http:// www.comp.nus.edu.sg/~cs5234/ Instructor: Seth Gilbert Office: COM2-204 Office hours: by appointment. CS5234 Overview. Combinatorial and Graph Algorithms. Algorithms. What is an algorithm ?

Download Presentation

CS5234 Combinatorial and Graph Algorithms

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS5234Combinatorial and Graph Algorithms Welcome!

  2. Combinatorial & Graph Algorithms http://www.comp.nus.edu.sg/~cs5234/ • Instructor: Seth Gilbert Office: COM2-204 Office hours: by appointment CS5234 Overview

  3. Combinatorial and Graph Algorithms

  4. Algorithms What is an algorithm? • Set of instructions for solving a problem “First, wash the tomatoes.” “Second, peel and cut the carrots.” “Third, mix the olive oil and vinegar.” “Finally, combine everything in a bowl.” • Finite sequence of steps • Unambiguous • English, Chinese, pseudocode, Java, etc.

  5. Algorithms for Combinatorial Optimization

  6. Combinatorial Optimization Optimization: Find the minimum/maximum…

  7. Combinatorial Optimization Optimization: Find the minimum/maximum: Discrete: a collection of items

  8. Combinatorial Optimization Optimization: Find the minimum/maximum: Discrete: a collection of items Combinatorial: a collection of items generated by counting, combining, and enumerating.

  9. Combinatorial Optimization Optimization: Find the minimum/maximum: Discrete: a collection of items Combinatorial: a collection of items generated by counting, combining, and enumerating. Examples: Graphs Matroids Similar structures…

  10. Combinatorial Optimization Find the “best” item in a large set of items: Problem Set of items Size Difficulty Searching List of integersLinear Easy Shortest paths All paths in a graph Exponential Easy Minimum spanning tree All spanning trees Exponential Easy Steiner tree All steiner trees Exponential Hard Travelling salesman All possible tours Exponential Hard Matching All possible matchings Exponential Easy Bipartite vertex cover All possible covers Exponential Easy Vertex cover All possible covers Exponential Hard Maximum clique All possible subsets Exponential Very Hard

  11. Combinatorial Optimization Find the “best” item in a large set of items: Problem Difficulty Maintain student records Easy Data compression Easy Program halting problem Impossible VLSI chip layout Hard Exam timetable scheduling Hard Job assignment problem Easy Computer deadlock problem Easy Finding patterns in a database Easy

  12. Combinatorial Optimization Operations Research: How to make better decisions (e.g., maximize profit) Project planning / critical path analysis Facility location: where to open stores / plants Floorplanning: layout of factory or computer chips Supply chain management Berth assignment problem (BAP): port management Assignment problems (e.g., weapon target assignment) Routing / transportation problems: buses, subways, trucking. Airline ticket pricing

  13. Algorithms for Combinatorial Optimization

  14. Goals: Algorithmic 1. Design (problem solving) 2. Analysis (rigorous, deep understanding) 3. Implementation (able to put it to use)

  15. Goals: Algorithmic 1. Design (problem solving) 2. Analysis (rigorous, deep understanding) 3. Implementation(able to put it to use)

  16. “If you need your software to run twice as fast, hire better programmers. But if you need your software to run more than twice as fast, use a better algorithm.” -- Software Lead at Microsoft

  17. “... pleasure has probably been the main goal all along. But I hesitate to admit it, because computer scientists want to maintain their image as hard-working individuals who deserve high salaries... ” -- D. E. Knuth

  18. “... pleasure has probably been the main goal all along. But I hesitate to admit it, because computer scientists want to maintain their image as hard-working individuals who deserve high salaries... ” -- D. E. Knuth

  19. Algorithms for Combinatorial Optimization Target students: • Beginning graduate students • Advanced (4th year) undergraduates • Anyone planning to do research in algorithmic design Prerequisites: • CS3230 (Analysis of Algorithms), or equivalent • Mathematical maturity

  20. Algorithms for Combinatorial Optimization You must already know these: • Data Structures (with analyses) • Stacks, Queues, Lists, • Binary search trees, balanced trees, • Heaps and priority queues • Algorithm Design Paradigms (with Analysis) • Standard sorting and searching algorithms • Graph algorithms: DFS, BFS, • Shortest Path Algorithms, MST Algorithms • Greedy Algorithms, Divide-and-Conquer

  21. Algorithms for Combinatorial Optimization You must already know these: • Analysis of Algorithms • Expertise with Big-O, ,  notations • Summation of series, Master Theorem • Competent with Algorithmic Analysis: Quicksort, Heapsort, Divide-and-Conquer algorithms DFS, BFS, Shortest Path & MST algorithms

  22. CS5234 Overview • Mid-term exam October 7 In class • Final exam December 2 Exams will be graded and returned.

  23. CS5234 Overview • Grading 40% Problem sets 25% Mid-term exam 35% Final exam • Problem sets • 6-7 sets (about every 1-2 weeks) • A few may have programming components (C++).

  24. CS5234 Overview • Last problem set Small project Idea: put together some of the different ideas we have used in the class. Time scale: last 2-3 weeks of the semester.

  25. CS5234 Overview • Problem sets released now PS0: Covers background knowledge. Do not submit. PS1: Routine problems --- easy practice. Do not submit. Standard problems --- to be submitted. Advanced problems --- for a challenge/fun. Do not submit.

  26. CS5234 Overview • Problem set grading Simple scheme: 2 : excellent, near perfect answer 1 : mostly right 0 : mostly wrong / not handed in -1 : utter nonsense

  27. CS5234 Overview • What to submit: Concise and precise answers: Solutions should be rigorous, containing all necessary detail, but no more. Algorithm descriptions consist of: 1. Summary of results/claims. 2. Description of algorithm in English. 3. Pseudocode, if helpful. 4. Worked example of algorithm. 5. Diagram / picture. 6. Proof of correctness and performance analysis.

  28. CS5234 Overview • How to draw pictures? By hand: Either submit hardcopy, or scan, or take a picture with your phone! Or use a tablet / iPad… Digitally: 1. xfig (ugh) 2. OmniGraffle (mac) 3. Powerpoint (hmmm) 4. ???

  29. CS5234 Overview • Policy on plagiarism: Do your work yourself: Your submission should be unique, unlike anything else submitted, on the web, etc. Discuss with other students: 1. Discuss general approach and techniques. 2. Do not take notes. 3. Spend 30 minutes on facebook (or equiv.). 4. Write up solution on your own. 5. List all collaborators. Do not search for solutions on the web: Use web to learn techniques and to review material from class.

  30. CS5234 Overview • Policy on plagiarism: Penalized severely: First offense: minimum of one letter grade lost on final grade for class (or referral to SoC disciplinary committee). Second offense: F for the class and/or referral to SoC. Do not copy/compare solutions!

  31. Textbooks Introduction to Algorithms • Cormen, Leiserson, Rivest, Stein • Recommended…

  32. Textbooks Algorithm Design • Kleinberg and Tardos • Recommended…

  33. CS5234 Overview • Topics (tentative, TBD) Introduction to combinatorial optimization Vertex cover, set cover, Steiner tree, TSP Flows and matching Maximum flow, bipartite matching Planar GraphsFaster algorithms… Linear programming LPs, duality, relaxations, rounding

More Related