CS5234 Combinatorial and Graph Algorithms Welcome!

Slides:



Advertisements
Similar presentations
Hon Wai Leong, NUS (CS6234, Spring 2009) Page 1 Copyright © 2009 by Leong Hon Wai CS6234: Spring 2009 (Overview) CS6234: Advanced Algorithms  Instructors:
Advertisements

Lecture 12: Revision Lecture Dr John Levine Algorithms and Complexity March 27th 2006.
S. J. Shyu Chap. 1 Introduction 1 The Design and Analysis of Algorithms Chapter 1 Introduction S. J. Shyu.
Five Problems CSE 421 Richard Anderson Winter 2009, Lecture 3.
Design and Analysis of Algorithms Maria-Florina (Nina) Balcan Lecture 1, Jan. 14 th 2011.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2001 Midterm Review Fri. Oct 26.
Introduction to Approximation Algorithms Lecture 12: Mar 1.
Jan Welcome to the Course of Advanced Algorithm Design (ACS-7101/3)
CS 253: Algorithms Syllabus Chapter 1 Appendix A.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2001 Lecture 1 (Part 1) Introduction/Overview Tuesday, 9/4/01.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2009 Lecture 1 Introduction/Overview Text: Chapters 1, 2 Th. 9/3/2009.
Semidefinite Programming
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2002 Lecture 1 (Part 1) Introduction/Overview Tuesday, 9/3/02.
Greedy Algorithms Reading Material: Chapter 8 (Except Section 8.5)
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2001 Lecture 1 Introduction/Overview Wed. 9/5/01.
CS 206 Introduction to Computer Science II 12 / 10 / 2008 Instructor: Michael Eckmann.
EE 220 (Data Structures and Analysis of Algorithms) Instructor: Saswati Sarkar T.A. Prasanna Chaporkar, Programming.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2005 Lecture 1 Introduction/Overview Text: Chapters 1, 2 Wed. 9/7/05.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2000 Final Review Wed. 12/13.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Spring, 2007 Lecture 1 Introduction/Overview Text: Chapters 1, 2 Wed. 1/24/07.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Spring, 2001 Lecture 1 Introduction/Overview Wed. 1/31/01.
Greedy Algorithms Like dynamic programming algorithms, greedy algorithms are usually designed to solve optimization problems Unlike dynamic programming.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2000 Lecture 1 Introduction/Overview Wed. 9/6/00.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Spring, 2002 Lecture 1 (Part 1) Introduction/Overview Tuesday, 1/29/02.
DAST, Spring © L. Joskowicz 1 Data Structures – LECTURE 1 Introduction Motivation: algorithms and abstract data types Easy problems, hard problems.
Piyush Kumar (Lecture 1: Introduction)
CS5234 Combinatorial and Graph Algorithms Welcome!
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Spring, 2002 Lecture 1 Introduction/Overview Text: Chapters 1, 2 Thurs.
CS223 Algorithms D-Term 2013 Instructor: Mohamed Eltabakh WPI, CS Introduction Slide 1.
CS 103 Discrete Structures Lecture 01 Introduction to the Course
CS4234 Optimization Algorithms Welcome!. CS4234 Overview  Optimization Algorithms  Instructor: Seth Gilbert.
LeongHW, SoC, NUS (CS Combinatorial and Graph Algorithms) Page 1 About CS5234: Course Overview CS5234: Combinatorial and Graph Algorithms  Level.
Nattee Niparnan. Easy & Hard Problem What is “difficulty” of problem? Difficult for computer scientist to derive algorithm for the problem? Difficult.
Approximation Algorithms
CSE 589 Part VI. Reading Skiena, Sections 5.5 and 6.8 CLR, chapter 37.
COT 5405: Design and Analysis of Algorithms Cliff Zou Spring 2015.
Yang Cai COMP 360: Algorithm Design Lecture 1
NP-COMPLETE PROBLEMS. Admin  Two more assignments…  No office hours on tomorrow.
CSE 421 Algorithms Richard Anderson Lecture 27 NP-Completeness and course wrap up.
1 BIM304: Algorithm Design Time: Friday 9-12am Location: B4 Instructor: Cuneyt Akinlar Grading –2 Midterms – 20% and 30% respectively –Final – 30% –Projects.
1 Algorithms and Networks Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij.
Design and Analysis of Algorithms (09 Credits / 5 hours per week) Sixth Semester: Computer Science & Engineering M.B.Chandak
CES 592 Theory of Software Systems B. Ravikumar (Ravi) Office: 124 Darwin Hall.
CS6045: Advanced Algorithms Sorting Algorithms. Heap Data Structure A heap (nearly complete binary tree) can be stored as an array A –Root of tree is.
Data Structures and Algorithms in Java AlaaEddin 2012.
Design and Analysis of Algorithms Introduction Instructors:1. B V Kiran Mayee, 2. A Madhavi
CSCI-256 Data Structures & Algorithm Analysis Lecture Note: Some slides by Kevin Wayne. Copyright © 2005 Pearson-Addison Wesley. All rights reserved. 3.
1 COMP9007 – Algorithms Course page: + Blackboard link Lecturer: M.Reza Hoseiny M.Reza Hoseiny Level.
CS4234 Optimiz(s)ation Algorithms Welcome!. Optimization Algorithms (we will use ‘z’) –
Design and Analysis of Algorithms
Design and Analysis of Algorithms (09 Credits / 5 hours per week)
Lecture 1 (Part 1) Introduction/Overview Tuesday, 9/9/08
Lecture 1 Introduction/Overview Text: Chapters 1, 2 Wed. 1/28/04
About CS5234 (Wk 0) Course Overview About CS5234 Homeworks
Piyush Kumar (Lecture 1: Introduction)
Piyush Kumar (Lecture 1: Introduction)
Introduction of ECE665 Computer Algorithms
CS 583 Fall 2006 Analysis of Algorithms
Introduction to Algorithms
Definition In simple terms, an algorithm is a series of instructions to solve a problem (complete a task) We focus on Deterministic Algorithms Under the.
COSC 320 Advanced Data Structures and Algorithm Analysis
CMPT 438 Algorithms Instructor: Tina Tian.
CSE 421 Richard Anderson Autumn 2016, Lecture 3
CSE 421 Richard Anderson Autumn 2015, Lecture 3
Piyush Kumar (Lecture 1: Introduction)
CSE 421, University of Washington, Autumn 2006
Piyush Kumar (Lecture 1: Introduction)
CSE 421 Richard Anderson Winter 2019, Lecture 3
COMP 122 – Design and Analysis of Algorithms
CSE 421 Richard Anderson Autumn 2019, Lecture 3
Presentation transcript:

CS5234 Combinatorial and Graph Algorithms Welcome!

CS5234 Overview  Combinatorial & Graph Algorithms  Instructor: Seth Gilbert Office: COM2-323 Office hours: by appointment

Algorithms for Combinatorial Optimization

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

“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

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

Algorithms for Combinatorial Optimization

Optimization: Find the minimum/maximum of… Combinatorial Optimization

Optimization: Find the minimum/maximum of: Continuous optimization: a function f Discrete optimization: a collection of items Combinatorial Optimization

Discrete Optimization: Find the “best” item in a large set of items. Combinatorial Optimization: Find the “best” item in a large set of items generated by a combinatorial process. Combinatorial: finite discrete structure Combinatorial process: counting, combining, enumerating Combinatorial Optimization

Discrete Optimization: Find the “best” item in a large set of items. Combinatorial Optimization: Find the “best” item in a large set of items generated by a combinatorial process. Graphs Matroids Similar structures… Combinatorial Optimization

Examples: Find the “best” item in a large set of items. Searching a listMaximum flow Shortest pathsMulticommodity flow Minimum spanning treeGraph partitioning Steiner treeFacility location Travelling salesmanQuadratic assignment Scheduling / planningKnapsack problem MatchingMaximum clique Combinatorial Optimization

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

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

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

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

Five Representative Problems Combinatorial Optimization

Input: Set of jobs with start and finish times Output:Maximum cardinality subset of compatible jobs 1. Interval Scheduling Time f g h e a b c d h e b Jobs don’t overlap

Input: Set of weighted jobs with start and finish times Output:Maximum weight subset of compatible jobs 2. Weighted Interval Scheduling Time

Input: Bipartite graph Output:Maximum cardinality matching 3. Bipartite Matching C A E 3 B D4

Input: Graph Output: Maximum cardinality independent set 4. Independent set subset of nodes such that no two joined by an edge

Input: Graph with weighted nodes Game: Two players alternate in selecting nodes. Cannot select a node if any of its neighbors have been selected. Goal: Select a maximum weight subset of nodes. 5. Competitive facility location Second player can get 20, but not 25.

Variations on a theme: Independent Set Interval scheduling: Greedy O(n log n) Weighted Interval scheduling: Dynamic programming O(n log n) Bipartite matching: O(n k ) max-flow algorithm Independent set: NP-complete Competitive facility location: PSPACE-complete Five problems

General combinatorial problem –Given a finite, discrete set S of objects –Minimize/maximize some function f (S) Algorithmic Issues… –Representation of the set S –Efficient manipulation of the set S –Efficient algorithm to compute f (S) Combinatorial Optimization

Given a problem P, – Can it be solved? If “Yes”, give an algorithm A for solving P, – Is algorithm A correct ? – How good is algorithm A ? – Can we find a better algorithm A’ ? How do we define good? – How much time it takes. – How much space it uses. Strategy Computability Verification Efficiency Time Complexity Space Complexity

Goals of this course: –Advanced design and analysis of algorithms: Efficiency –Time: How long does it take? –Space: How much memory? How much disk? –Others: Energy, power, heat, parallelism, etc. Scalability –Inputs are large : e.g., the internet. –Bigger problems consume more resources. –Solve important (fun!) problems in combinatorial optimization Algorithms for Combinatorial Optimization

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 –Strong programming skills 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 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 Algorithms for Combinatorial Optimization

Assumed knowledge: –Data structures and algorithms –Good programming skills –CS3230 (Analysis of Algorithms) Not a course to learn algorithms: –If not, take CS3230 instead. Algorithms for Combinatorial Optimization

 Mid-term exam October 8 In class  Final exam November 19 Reading Week Exams will be graded and returned. 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 will have programming components (C++). CS5234 Overview

 Problem sets released by tomorrow morning 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

 Problem set grading Distributed grading scheme: Each of you will be responsible for grading one week during the semester. Grading supervised (and verified) by the TA. 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. 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. 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! CS5234 Overview

Introduction to Algorithms –Cormen, Leiserson, Rivest, Stein –Recommended… Textbooks

Algorithm Design –Kleinberg and Tardos –Recommended… Textbooks

 Topics (tentative, TBD) Introduction to combinatorial optimization Vertex cover, set cover, Steiner tree, TSP Flows and matching Maximum flow, bipartite matching Graph partitioning Heuristics, spectral bisection Linear programming LPs, duality, relaxations, rounding CS5234 Overview