Introduction to Optimization

Similar documents
Introduction to Optimization

Introduction to Optimization

Introduction to Optimization

Theory of Computing. Lecture 10 MAS 714 Hartmut Klauck

looking ahead to see the optimum

Introduction to Optimization

CSE 100: GRAPH ALGORITHMS

Chapter 9 Graph Algorithms

Chapter 9 Graph Algorithms

Chapter 9 Graph Algorithms

11/22/2016. Chapter 9 Graph Algorithms. Introduction. Definitions. Definitions. Definitions. Definitions

CSE 417 Branch & Bound (pt 4) Branch & Bound

Introduction to Optimization

Theorem 2.9: nearest addition algorithm

Minimum Spanning Trees

Minimum-Spanning-Tree problem. Minimum Spanning Trees (Forests) Minimum-Spanning-Tree problem

10/31/18. About A6, Prelim 2. Spanning Trees, greedy algorithms. Facts about trees. Undirected trees

Spanning Trees, greedy algorithms. Lecture 20 CS2110 Fall 2018

Introduction to Optimization

5 MST and Greedy Algorithms

CSC 373: Algorithm Design and Analysis Lecture 4

Spanning Trees, greedy algorithms. Lecture 22 CS2110 Fall 2017

Spanning Trees 4/19/17. Prelim 2, assignments. Undirected trees

Spanning Trees. Lecture 22 CS2110 Spring 2017

Autumn Minimum Spanning Tree Disjoint Union / Find Traveling Salesman Problem

CSE 100 Minimum Spanning Trees Prim s and Kruskal

managing an evolving set of connected components implementing a Union-Find data structure implementing Kruskal s algorithm

CS 4407 Algorithms. Lecture 8: Circumventing Intractability, using Approximation and other Techniques

5 MST and Greedy Algorithms

Advanced Algorithms Class Notes for Monday, October 23, 2012 Min Ye, Mingfu Shao, and Bernard Moret

Chapter 9. Greedy Technique. Copyright 2007 Pearson Addison-Wesley. All rights reserved.

Chapter 23. Minimum Spanning Trees

6.1 Minimum Spanning Trees

2.1 Greedy Algorithms. 2.2 Minimum Spanning Trees. CS125 Lecture 2 Fall 2016

Trees. Arash Rafiey. 20 October, 2015

Lecture 13. Reading: Weiss, Ch. 9, Ch 8 CSE 100, UCSD: LEC 13. Page 1 of 29

Lecture 13: Minimum Spanning Trees Steven Skiena. Department of Computer Science State University of New York Stony Brook, NY

Lecture 6 Basic Graph Algorithms

Discrete mathematics

Lecture 13: Minimum Spanning Trees Steven Skiena

Minimum-Cost Spanning Tree. Example

Example. Minimum-Cost Spanning Tree. Edge Selection Greedy Strategies. Edge Selection Greedy Strategies

Definition For vertices u, v V (G), the distance from u to v, denoted d(u, v), in G is the length of a shortest u, v-path. 1

Greedy algorithms. Given a problem, how do we design an algorithm that solves the problem? There are several strategies:

CSE373: Data Structures & Algorithms Lecture 17: Minimum Spanning Trees. Dan Grossman Fall 2013

Graphs and Network Flows IE411. Lecture 21. Dr. Ted Ralphs

CS521 \ Notes for the Final Exam

UNIT 3. Greedy Method. Design and Analysis of Algorithms GENERAL METHOD

SPANNING TREES. Lecture 21 CS2110 Spring 2016

1 Minimum Spanning Trees (MST) b 2 3 a. 10 e h. j m

Introduction to Optimization

Minimum Spanning Trees and Union Find. CSE 101: Design and Analysis of Algorithms Lecture 7

Definition: A graph G = (V, E) is called a tree if G is connected and acyclic. The following theorem captures many important facts about trees.

We ve done. Introduction to the greedy method Activity selection problem How to prove that a greedy algorithm works Fractional Knapsack Huffman coding

1 Variations of the Traveling Salesman Problem

Greedy Algorithms and Matroids. Andreas Klappenecker

Partha Sarathi Mandal

COP 4531 Complexity & Analysis of Data Structures & Algorithms

Greedy Algorithms and Matroids. Andreas Klappenecker

Discrete mathematics II. - Graphs

Approximation Algorithms

Notes for Recitation 9

CS 310 Advanced Data Structures and Algorithms

Optimization I : Brute force and Greedy strategy

18 Spanning Tree Algorithms

Assignment 5: Solutions

Algorithms and Theory of Computation. Lecture 5: Minimum Spanning Tree

Algorithms and Theory of Computation. Lecture 5: Minimum Spanning Tree

Graphs: Introduction. Ali Shokoufandeh, Department of Computer Science, Drexel University

Graph Algorithms Using Depth First Search

Lecture 8: The Traveling Salesman Problem

Topics. Trees Vojislav Kecman. Which graphs are trees? Terminology. Terminology Trees as Models Some Tree Theorems Applications of Trees CMSC 302

Graphs and Network Flows ISE 411. Lecture 7. Dr. Ted Ralphs

1 The Traveling Salesperson Problem (TSP)

CS302 - Data Structures using C++

APPROXIMATION ALGORITHMS FOR GEOMETRIC PROBLEMS

Undirected Graphs. DSA - lecture 6 - T.U.Cluj-Napoca - M. Joldos 1

Notes 4 : Approximating Maximum Parsimony

CSE 431/531: Algorithm Analysis and Design (Spring 2018) Greedy Algorithms. Lecturer: Shi Li

Info 2950, Lecture 16

CS200: Graphs. Rosen Ch , 9.6, Walls and Mirrors Ch. 14

CS 6783 (Applied Algorithms) Lecture 5

CSE 21 Mathematics for Algorithm and System Analysis

CSE 373 MAY 10 TH SPANNING TREES AND UNION FIND

Reference Sheet for CO142.2 Discrete Mathematics II

Trees Algorhyme by Radia Perlman

Unit 8: Coping with NP-Completeness. Complexity classes Reducibility and NP-completeness proofs Coping with NP-complete problems. Y.-W.

CIS 121 Data Structures and Algorithms Minimum Spanning Trees

Chapter 2 Graphs. 2.1 Definition of Graphs

Notes for Lecture 24

Treewidth and graph minors

Minimum Spanning Trees Ch 23 Traversing graphs

UC Berkeley CS 170: Efficient Algorithms and Intractable Problems Handout 8 Lecturer: David Wagner February 20, Notes 8 for CS 170

Randomized Graph Algorithms

Minimum spanning trees

CS270 Combinatorial Algorithms & Data Structures Spring Lecture 19:

Coping with the Limitations of Algorithm Power Exact Solution Strategies Backtracking Backtracking : A Scenario

Lecture 19. Broadcast routing

Chapter 3 Trees. Theorem A graph T is a tree if, and only if, every two distinct vertices of T are joined by a unique path.

CMSC 451: Lecture 22 Approximation Algorithms: Vertex Cover and TSP Tuesday, Dec 5, 2017

Transcription:

Introduction to Optimization Greedy Algorithms October 28, 2016 École Centrale Paris, Châtenay-Malabry, France Dimo Brockhoff Inria Saclay Ile-de-France

2 Course Overview Date Fri, 7.10.2016 Fri, 28.10.2016 Fri, 4.11.2016 Fri, 18.11.2016 Mon, 21.11.2016 in S103-S105 Topic Introduction D Introduction to Discrete Optimization + Greedy algorithms I D Greedy algorithms II + Branch and bound D Dynamic programming D Approximation algorithms and heuristics Fri, 25.11.2016 in S103-S105 Mon, 28.11.2016 Mon, 5.12.2016 Fri, 9.12.2016 Mon, 12.12.2016 Fri, 16.12.2016 Wed, 4.1.2017 C Introduction to Continuous Optimization I C Introduction to Continuous Optimization II C Gradient-based Algorithms C Stochastic Optimization and Derivative Free Optimization I C Stochastic Optimization and Derivative Free Optimization II C Benchmarking Optimizers with the COCO platform Exam all classes last 3h15 and take place in S115-S117 (see exceptions)

3 Introduction to Discrete Optimization

Discrete Optimization 4 Discrete optimization: discrete variables or optimization over discrete structures (e.g. graphs) search space often finite, but typically too large for enumeration need for smart algorithms Algorithms for discrete problems: typically problem-specific but some general concepts are repeatedly used: greedy algorithms (lecture 2 today) branch&bound (lecture 3) dynamic programming (lecture 4) heuristics (lecture 5)

5 Basic Concepts of Graph Theory [following for example http://math.tut.fi/~ruohonen/gt_english.pdf]

Graphs 6 vertices = nodes edges = lines Note: edges cover two unordered vertices (undirected graph) if they are ordered, we call G a directed graph

Graphs: Basic Definitions 7 G is called empty if E empty u and v are end vertices of an edge {u,v} Edges are adjacent if they share an end vertex a loop Vertices u and v are adjacent if {u,v} is in E The degree of a vertex is the number of times it is an end vertex A complete graph contains all possible edges (once): K 1 K 2 K 3 K 4

Walks, Paths, and Circuits 8 A walk is closed if first and last node coincide a trail if each edge traversed at most once a path if each vertex is visited at most once a closed path is a circuit or cycle a closed path involving all vertices of G is a Hamiltonian cycle

Graphs: Connectedness 9 Two vertices are called connected if there is a walk between them in G If all vertex pairs in G are connected, G is called connected The connected components of G are the (maximal) subgraphs which are connected.

Trees and Forests 10 A forest is a cycle-free graph A tree is a connected forest root children A spanning tree of a connected graph G is a tree in G which contains all vertices of G parent

Depth-First Search (DFS) 11 Sometimes, we need to traverse a graph, e.g. to find certain vertices Depth-first search and breadth-first search are two algorithms to do so Depth-first Search (for undirected/acyclic and connected graphs) start at any node x; set i=0 as long as there are unvisited edges {x,y}: choose the next unvisited edge {x,y} to a vertex y and mark x as the parent of y if y has not been visited so far: i=i+1, give y the number i, and continue the search at x=y in step 2 else continue with next unvisited edge of x if all edges {x,y} are visited, we continue with x=parent(x) at step 2 or stop if x==v0

DFS: Stage Exercise 12 Exercise the DFS algorithm on the following graph! A e 1 e 2 B C D e 3 e 4 e 5 e 6 e 7 e 8 e 9 E e 10 F G e 11 e 12 e 13 e 14 e 15 e 16 e 17 H e 18 e 19 I J e 20 e 21 e 22 K L M

Breadth-First Search (BFS) 13 Breadth-first Search (for undirected/acyclic and connected graphs) start at any node x, set i=0, and label x with value i as long as there are unvisited edges {x,y} which are adjacent to a vertex x that is labeled with value i: label all vertices y with value i+1 set i=i+1 and go to step 2 1 1 2 2 0 1 3 1 2 2

14 Definition of Some Combinatorial Problems Used Later on in the Lecture

Shortest Paths (SP) 15 Shortest Path problem: Given a graph G=(V,E) with edge weights w i for each edge e i. Find the shortest path from a vertex v to a vertex u, i.e., the path (v, e 1 ={v, v 1 }, v 1,..., v k, e k ={v k,u}, u) such that w 1 +... + w k is minimized. 7 1 Obvious Applications 3 1 1 Google maps Finding routes for packages in a computer network... 1 4 7 u 2 9 1 3 4 1 v 7 7 2 3 5

Minimum Spanning Trees (MST) 16 Minimum Spanning Tree problem: Given a graph G=(V,E) with edge weights w i for each edge e i. Find the spanning tree with the smallest weight among all spanning trees. 7 1 Applications 3 1 1 Setting up a new wired telecommunication/water supply/electricity network Constructing minimal delay trees for broadcasting in networks 1 4 7 2 9 1 3 4 1 7 7 2 3 5

Set Cover Problem (SCP) 17 Set Cover Problem Given a set U={1, 2, 3,..., n}, called the universe, and a set S={s 1,..., s m } of m subsets of U, the union of which equals U. Find the smallest subset of S, the union of which also equals U. In other words, find an index I {1,..., m} which minimizes Σ i I s i such that the union of the s i (i I) equals U. U = {1,2,3,4,5} S = {{1,2}, {1,3,5}, {1,2,3,5}, {2,3,4}} minimal set cover: {1,3,5} {2,3,4} Application example IBM s Antivirus use(d) set cover to search for a minimal set of code snippets which appear in all known viruses but not in good code

Bin Packing (BP) 18 Bin Packing Problem Given a set of n items with sizes a 1, a 2,..., a n. Find an assignment of the a i s to bins of size V such that the number of bins is minimal and the sum of the sizes of all items assigned to each bin is V. Applications similar to multiprocessor scheduling of n jobs to m processors

Integer Linear Programming (ILP) 19 rather a problem class can be written as ILP: SAT, TSP, Vertex Cover, Set Packing,...

Conclusions I 20 many, many more problems out there typically in practice: need to solve very specific instances here only possible to provide you the basic algorithm design ideas applied to a few standard problem classes regular training (i.e. exercises) to gain intuition and experience a broad overview on optimization topics to potentially draw your interest (e.g. towards a PhD on that topic)

Conclusions II 21 I hope it became clear so far......what optimization is about...what is a graph, a node/vertex, an edge,......and that designing a good algorithm is an important task

22 Greedy Algorithms

Greedy Algorithms 23 From Wikipedia: A greedy algorithm is an algorithm that follows the problem solving heuristic of making the locally optimal choice at each stage with the hope of finding a global optimum. Note: typically greedy algorithms do not find the global optimum We will see later when this is the case

Greedy Algorithms: Lecture Overview 24 Example 1: Money Change Example 2: Packing Circles in Triangles Example 3: Minimal Spanning Trees (MST) and the algorithm of Kruskal The theory behind greedy algorithms: a brief introduction to matroids Exercise: A Greedy Algorithm for the Knapsack Problem

Example 1: Money Change 25 Change-making problem Given n coins of distinct values w 1 =1, w 2,..., w n and a total change W (where w 1,..., w n, and W are integers). Minimize the total amount of coins Σx i such that Σw i x i = W and where x i is the number of times, coin i is given back as change. Greedy Algorithm Unless total change not reached: add the largest coin which is not larger than the remaining amount to the change Note: only optimal for standard coin sets, not for arbitrary ones! Related Problem: finishing darts (from 501 to 0 with 9 darts)

Example 2: Packing Circles in Triangles 26 G. F. Malfatti posed the following problem in 1803: how to cut three cylindrical columns out of a triangular prism of marble such that their total volume is maximized? his best solutions were so-called Malfatti circles in the triangular cross-section: all circles are tangent to each other two of them are tangent to each side of the triangle

Example 2: Packing Circles in Triangles 27 What would a greedy algorithm do?

Example 2: Packing Circles in Triangles 28 What would a greedy algorithm do? Note that Zalgaller and Los' showed in 1994 that the greedy algorithm is optimal [1] [1] Zalgaller, V.A.; Los', G.A. (1994), "The solution of Malfatti's problem", Journal of Mathematical Sciences 72 (4): 3163 3177, doi:10.1007/bf01249514.

Example 3: Minimal Spanning Trees (MST) 29 Outline: reminder of problem definition Kruskal s algorithm including correctness proofs and analysis of running time

MST: Reminder of Problem Definition 30 A spanning tree of a connected graph G is a tree in G which contains all vertices of G Minimum Spanning Tree Problem (MST): Given a (connected) graph G=(V,E) with edge weights w i for each edge e i. Find a spanning tree T that minimizes the weights of the contained edges, i.e. where Σ w i e i T is minimized.

Kruskal s Algorithm 31 Algorithm, see [1] Create forest F = (V,{}) with n components and no edge Put sorted edges (such that w.l.o.g. w 1 < w 2 <... < w E ) into set S While S non-empty and F not spanning: delete cheapest edge from S add it to F if no cycle is introduced [1] Kruskal, J. B. (1956). "On the shortest spanning subtree of a graph and the traveling salesman problem". Proceedings of the American Mathematical Society 7: 48 50. doi:10.1090/s0002-9939-1956-0078686-7

Kruskal s Algorithm: Example 32 D A E 4 12 B 22 21 17 7 2 3 6 20 8 F 9 G 18 C H 16 11 10 19 1 13 I J 15 14 5 K L M

Kruskal s Algorithm: Example 33 D A E 4 12 B 22 21 17 7 2 3 6 20 8 F 9 G 18 C H 16 11 10 19 1 13 I J 15 14 5 K L M

Kruskal s Algorithm: Runtime Considerations 34 First question: how to implement the algorithm? sorting of edges needs O( E log E ) Algorithm Create forest F = (V,{}) with n components and no edge Put sorted edges (such that w.l.o.g. w 1 < w 2 <... < w E ) into set S While S non-empty and F not spanning: delete cheapest edge from S add it to F if no cycle is introduced simple? forest implementation: Disjoint-set data structure

Disjoint-set Data Structure ( Union&Find ) 35 Data structure: ground set 1...N grouped to disjoint sets Operations: FIND(i): to which set ( tree ) does i belong? UNION(i,j): union the sets of i and j! ( join the two trees of i and j ) 1 1 2 2 3 3 4 4 Implemented as trees: UNION(T1, T2): hang root node of smaller tree under root node of larger tree (constant time), thus FIND(u): traverse tree from u to root (to return a representative of u s set) takes logarithmic time in total number of nodes 1 5 4 3 2 6

Implementation of Kruskal s Algorithm 36 Algorithm, rewritten with UNION-FIND: Create initial disjoint-set data structure, i.e. for each vertex v i, store v i as representative of its set Create empty forest F = {} Sort edges such that w.l.o.g. w 1 < w 2 <... < w E for each edge e i ={u,v} starting from i=1: if FIND(u) FIND(v): # no cycle introduced F = F {{u,v}} UNION(u,v) return F

Back to Runtime Considerations 37 Sorting of edges needs O( E log E ) forest: Disjoint-set data structure initialization: O( V ) log V to find out whether the minimum-cost edge {u,v} connects two sets (no cycle induced) or is within a set (cycle would be induced) 2x FIND + potential UNION needs to be done O( E ) times total O( E log V ) Overall: O( E log E )

Kruskal s Algorithm: Proof of Correctness Two parts needed: Algo always produces a spanning tree final F contains no cycle and is connected by definition Algo always produces a minimum spanning tree argument by induction P: If F is forest at a given stage of the algorithm, then there is some minimum spanning tree that contains F. clearly true for F = (V, {}) assume that P holds when new edge e is added to F and be T a MST that contains F if e in T, fine if e not in T: T + e has cycle C with edge f in C but not in F (otherwise e would have introduced a cycle in F) now T f + e is a tree with same weight as T (since T is a MST and f was not chosen to F) hence T f + e is MST including T + e (i.e. P holds) 38

Another Greedy Algorithm for MST 39 Another greedy approach to the MST problem is Prim s algorithm Somehow like the one of Kruskal but: always keeps a tree instead of a forest thus, take always the cheapest edge which connects to the current tree Runtime more or less the same for both algorithms, but analysis of Prim s algorithm a bit more involved because it needs (even) more complicated data structures to achieve it (hence not shown here)

Intermediate Conclusion 40 What we have seen so far: three problems where a greedy algorithm was optimal money change three circles in a triangle minimum spanning tree (Kruskal s and Prim s algorithms) but also: greedy not always optimal in particular for NP-hard problems Obvious Question: when is greedy good? answer: matroids

Matroids 41 from Wikipedia: [...] a matroid is a structure that captures and generalizes the notion of linear independence in vector spaces. Reminder: linear independence in vector spaces again from Wikipedia: A set of vectors is said to be linearly dependent if one of the vectors in the set can be defined as a linear combination of the other vectors. If no vector in the set can be written in this way, then the vectors are said to be linearly independent.

Matroid: Definition 42 Various equivalent definitions of matroids exist Here, we define a matroid via independent sets Definition of a Matroid: A matroid is a tuple M = (E, I) with E being the finite ground set and I being a collection of (so-called) independent subsets of E satisfying these two axioms: (I 1 ) if X Y and Y I then X I, (I 2 ) if X I and Y I and Y > X then there exists an e Y \ X such that X e I. Note: (I 2 ) implies that all maximal independent sets have the same cardinality (maximal independent = adding an item of E makes the set dependent) Each maximal independent set is called a basis for M.

Example: Uniform Matroids 43 A matroid M = (E, I) in which I = {X E: X k} is called a uniform matroid. The bases of uniform matroids are the sets of cardinality k (in case k E ).

Example: Graphic Matroids 44 Given a graph G = (V, E), its corresponding graphic matroid is defined by M = (E, I) where I contains all subsets of edges which are forests. If G is connected, the bases are the spanning trees of G. If G is unconnected, a basis contains a spanning tree in each connected component of G.

Matroid Optimization 45 Given a matroid M = (E, I) and a cost function c: E R, the matroid optimization problem asks for an independent set S with the maximal total cost c(s) = e S c(e). If all costs are non-negative, we search for a maximal cost basis. In case of a graphic matroid, the above problem is equivalent to the Maximum Spanning Tree problem (use Kruskal s algorithm, where the costs are negated, to solve it).

Greedy Optimization of a Matroid 46 Greedy algorithm on M = (E, I) sort elements by their cost (w.l.o.g. c(e 1 ) c(e 2 ) c(e M )) S 0 = {}, k = 0 for j = 1 to E do if S k e j I then k = k + 1 S k = S k 1 e j output the sets S 1,, S k or max{s 1,, S k } Theorem: The greedy algorithm on the independence system M = (E, I), which satisfies (I 1 ), outputs the optimum for any cost function iff M is a matroid. Proof not shown here.

47 Exercise: A Greedy Algorithm for the Knapsack Problem

Conclusions 49 I hope it became clear......what a greedy algorithm is...that it not always results in the optimal solution...but that it does if and only if the problem is a matroid