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. Algorithms
Slide 5
Algorithms for Combinatorial Optimization
Slide 6
Optimization: Find the minimum/maximum Combinatorial Optimization
Slide 7
Optimization: Find the minimum/maximum: Discrete: a collection of items Combinatorial Optimization
Slide 8
Optimization: Find the minimum/maximum: Discrete: a collection of items Combinatorial: a collection of items generated by counting, combining, and enumerating. Combinatorial Optimization
Slide 9
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 Combinatorial Optimization
Slide 10
Find the best item in a large set of items: ProblemSet of itemsSize Difficulty Searching List of integersLinearEasy Shortest pathsAll paths in a graphExponentialEasy Minimum spanning treeAll spanning treesExponentialEasy Steiner treeAll steiner treesExponentialHard Travelling salesmanAll possible toursExponentialHard MatchingAll possible matchingsExponentialEasy Bipartite vertex coverAll possible coversExponentialEasy Vertex coverAll possible coversExponentialHard Maximum cliqueAll possible subsetsExponentialVery Hard Combinatorial Optimization
Slide 11
Find the best item in a large set of items: ProblemDifficulty Maintain student recordsEasy Data compressionEasy Program halting problemImpossible VLSI chip layoutHard Exam timetable schedulingHard Job assignment problemEasy Computer deadlock problemEasy Finding patterns in a databaseEasy Combinatorial Optimization
Slide 12
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 Combinatorial Optimization
Slide 13
Algorithms for Combinatorial Optimization
Slide 14
Goals: Algorithmic 1. Design (problem solving) 2. Analysis (rigorous, deep understanding) 3. Implementation (able to put it to use)
Slide 15
Slide 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
Slide 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
Slide 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
Slide 19
Computer programming is an art, because it applies accumulated knowledge to the world, because it requires skill and ingenuity, and especially because it produces objects of beauty. A programmer who subconsciously views himself as an artist will enjoy what he does and will do it better. -- D. E. Knuth
Slide 20
Target students: Beginning graduate students Advanced (4 th year) undergraduates Anyone planning to do research in algorithmic design Prerequisites: CS3230 (Analysis of Algorithms), or equivalent Mathematical maturity Algorithms for Combinatorial Optimization
Slide 21
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 Algorithms for Combinatorial Optimization
Slide 22
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 Algorithms for Combinatorial Optimization
Slide 23
Mid-term exam October 7 In class Final exam December 2 Exams will be graded and returned. CS5234 Overview
Slide 24
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++). CS5234 Overview
Slide 25
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. CS5234 Overview
Slide 26
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. CS5234 Overview
Slide 27
Problem set grading Simple scheme: 2 : excellent, near perfect answer 1 : mostly right 0 : mostly wrong / not handed in -1 : utter nonsense CS5234 Overview
Slide 28
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. CS5234 Overview
Slide 29
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. ??? CS5234 Overview
Slide 30
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. CS5234 Overview
Slide 31
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! CS5234 Overview
Slide 32
Introduction to Algorithms Cormen, Leiserson, Rivest, Stein Recommended Textbooks
Slide 33
Algorithm Design Kleinberg and Tardos Recommended Textbooks
Slide 34
Topics (tentative, TBD) Introduction to combinatorial optimization Vertex cover, set cover, Steiner tree, TSP Flows and matching Maximum flow, bipartite matching Planar Graphs Faster algorithms Linear programming LPs, duality, relaxations, rounding CS5234 Overview
Slide 35
What do we do when problems are NP-hard? 1.Find exponential time solutions 2.Average performance 3.Approximate Algorithm is efficient Solution is sub-optimal Provable guarantee: ratio of output to optimal Combinatorial Optimization