CS4234 Optimization Algorithms Welcome!. CS4234 Overview Optimization Algorithms gilbert/CS4234 ...

29
CS4234 Optimization Algorithms Welcome!

Transcript of CS4234 Optimization Algorithms Welcome!. CS4234 Overview Optimization Algorithms gilbert/CS4234 ...

Page 1: CS4234 Optimization Algorithms Welcome!. CS4234 Overview  Optimization Algorithms gilbert/CS4234  Instructor: Seth Gilbert.

CS4234Optimization Algorithms

Welcome!

Page 2: CS4234 Optimization Algorithms Welcome!. CS4234 Overview  Optimization Algorithms gilbert/CS4234  Instructor: Seth Gilbert.

CS4234 Overview

Optimization Algorithmshttp://www.comp.nus.edu.sg/~gilbert/CS4234

Instructor: Seth GilbertOffice: COM2-323

Office hours: by appointment

Page 3: CS4234 Optimization Algorithms Welcome!. CS4234 Overview  Optimization Algorithms gilbert/CS4234  Instructor: Seth Gilbert.

Optimization:Find the minimum/maximum…

Optimization Algorithms

Page 4: CS4234 Optimization Algorithms Welcome!. CS4234 Overview  Optimization Algorithms gilbert/CS4234  Instructor: Seth Gilbert.

Optimization:Find the minimum/maximum:

Discrete: a collection of items

Optimization Algorithms

Page 5: CS4234 Optimization Algorithms Welcome!. CS4234 Overview  Optimization Algorithms gilbert/CS4234  Instructor: Seth Gilbert.

Optimization:Find the minimum/maximum:

Discrete: a collection of items

Combinatorial: a collection of items

generated by counting, combining, and

enumerating.

Optimization Algorithms

Page 6: CS4234 Optimization Algorithms Welcome!. CS4234 Overview  Optimization Algorithms gilbert/CS4234  Instructor: Seth Gilbert.

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…

Optimization Algorithms

Page 7: CS4234 Optimization Algorithms Welcome!. CS4234 Overview  Optimization Algorithms gilbert/CS4234  Instructor: Seth Gilbert.

Find the “best” item in a large set of items:

Problem Set of items Size DifficultySearching List of integersLinear Easy

Shortest paths All paths in a graph Exponential Easy

Minimum spanning tree All spanning trees ExponentialEasy

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

Combinatorial Optimization

Page 8: CS4234 Optimization Algorithms Welcome!. CS4234 Overview  Optimization Algorithms gilbert/CS4234  Instructor: Seth Gilbert.

Find the “best” item in a large set of items:

Problem DifficultyMaintain 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

Combinatorial Optimization

Page 9: CS4234 Optimization Algorithms Welcome!. CS4234 Overview  Optimization Algorithms gilbert/CS4234  Instructor: Seth Gilbert.

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

Page 10: CS4234 Optimization Algorithms Welcome!. CS4234 Overview  Optimization Algorithms gilbert/CS4234  Instructor: Seth Gilbert.

Optimization:Find the minimum/maximum:

Discrete: a collection of items

Combinatorial: a collection of items

generated by counting, combining, and

enumerating.

Continuous: given a function f(x), find the

vector x that maximizes f(x).

Optimization Algorithms

Page 11: CS4234 Optimization Algorithms Welcome!. CS4234 Overview  Optimization Algorithms gilbert/CS4234  Instructor: Seth Gilbert.

Optimization Algorithms

Page 12: CS4234 Optimization Algorithms Welcome!. CS4234 Overview  Optimization Algorithms gilbert/CS4234  Instructor: Seth Gilbert.

“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

Page 13: CS4234 Optimization Algorithms Welcome!. CS4234 Overview  Optimization Algorithms gilbert/CS4234  Instructor: Seth Gilbert.

“... 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

Page 14: CS4234 Optimization Algorithms Welcome!. CS4234 Overview  Optimization Algorithms gilbert/CS4234  Instructor: Seth Gilbert.

“... 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

Page 15: CS4234 Optimization Algorithms Welcome!. CS4234 Overview  Optimization Algorithms gilbert/CS4234  Instructor: Seth Gilbert.

Brand new class: – We can make this class what we want.

– Talk to me about your goals, interests, etc.

CS4234 : Optimization Algorithms

Page 16: CS4234 Optimization Algorithms Welcome!. CS4234 Overview  Optimization Algorithms gilbert/CS4234  Instructor: Seth Gilbert.

Brand new class: – We can make this class what we want.

– Talk to me about your goals, interests, etc.

Where did this class come from?– CS5234: Combinatorial and Graph

Algorithms

– More general: all sorts of optimization (not only graphs).

– More specific: just optimization

CS4234 : Optimization Algorithms

Page 17: CS4234 Optimization Algorithms Welcome!. CS4234 Overview  Optimization Algorithms gilbert/CS4234  Instructor: Seth Gilbert.

Target students:– Advanced (3rd or 4th year) undergraduates

– Interested in algorithms

– Interested in tools for solving hard problems

Prerequisites: – CS3230 (Analysis of Algorithms)

– Mathematical fundamentals

Optimization Algorithms

Page 18: CS4234 Optimization Algorithms Welcome!. CS4234 Overview  Optimization Algorithms gilbert/CS4234  Instructor: Seth Gilbert.

Mid-term exam

October 6 In class

Final exam

November 25

Exams will be graded and returned.

CS4234 Overview

Page 19: CS4234 Optimization Algorithms Welcome!. CS4234 Overview  Optimization Algorithms gilbert/CS4234  Instructor: Seth Gilbert.

Grading

40% Problem sets

25% Mid-term exam

35% Final exam

Problem sets

– 5-6 sets (about every 1-2 weeks)

– Focused on algorithm design and analysis.

CS4234 Overview

Page 20: CS4234 Optimization Algorithms Welcome!. CS4234 Overview  Optimization Algorithms gilbert/CS4234  Instructor: Seth Gilbert.

Mini-Project

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.

CS4234 Overview

Page 21: CS4234 Optimization Algorithms Welcome!. CS4234 Overview  Optimization Algorithms gilbert/CS4234  Instructor: Seth Gilbert.

Released today/tomorrow

Survey: On IVLE.

What is your background?

Not more than 10 minutes.

PS1: Released tomorrow.

CS4234 Overview

Page 22: CS4234 Optimization Algorithms Welcome!. CS4234 Overview  Optimization Algorithms gilbert/CS4234  Instructor: Seth Gilbert.

Problem set grading

Simple scheme:

3 : excellent, perfect answer

2 : satisfactory, mostly right

1 : many mistakes / poorly written

0 : mostly wrong / not handed in

-1 : utter nonsense

CS4234 Overview

Page 23: CS4234 Optimization Algorithms Welcome!. CS4234 Overview  Optimization Algorithms gilbert/CS4234  Instructor: Seth Gilbert.

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.

CS4234 Overview

Page 24: CS4234 Optimization Algorithms Welcome!. CS4234 Overview  Optimization Algorithms gilbert/CS4234  Instructor: Seth Gilbert.

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. ???

CS4234 Overview

Page 25: CS4234 Optimization Algorithms Welcome!. CS4234 Overview  Optimization Algorithms gilbert/CS4234  Instructor: Seth Gilbert.

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.

CS4234 Overview

Page 26: CS4234 Optimization Algorithms Welcome!. CS4234 Overview  Optimization Algorithms gilbert/CS4234  Instructor: Seth Gilbert.

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!

CS4234 Overview

Page 27: CS4234 Optimization Algorithms Welcome!. CS4234 Overview  Optimization Algorithms gilbert/CS4234  Instructor: Seth Gilbert.

Introduction to Algorithms– Cormen, Leiserson, Rivest, Stein

– Recommended…

Textbooks

Page 28: CS4234 Optimization Algorithms Welcome!. CS4234 Overview  Optimization Algorithms gilbert/CS4234  Instructor: Seth Gilbert.

Algorithm Design– Kleinberg and Tardos

– Recommended…

Textbooks

Page 29: CS4234 Optimization Algorithms Welcome!. CS4234 Overview  Optimization Algorithms gilbert/CS4234  Instructor: Seth Gilbert.

Topics (tentative, TBD)

Introduction to combinatorial optimization Vertex cover, set cover, Steiner tree, TSP

Flows and matching Maximum flow, bipartite matching

Linear programming LPs, duality, relaxations, rounding

Continuous optimizationGradient descent, meta-heuristics

CS4234 Overview