Code Compaction Using Post-Increment/Decrement Addressing Modes
|
|
- Blake Warren
- 5 years ago
- Views:
Transcription
1 Code Compaction Using Post-Increment/Decrement Addressing Modes Daniel Golovin and Michael De Rosa {dgolovin, Abstract During computation, locality of reference is often observed, and can be exploited to achieve performance increases in several ways. This locality is an artifact of the computational abstractions and architectures that we use, such as iterating over an arrays or encapsulating tasks into distinct functions with local state. With this in mind, some architectures have been created with features designed specifically to exploit locality. In this paper, we extend the work of [1] to benefit as much as possible from one such particular feature: post-increment and post-decrement addressing modes. With careful placement of stack variables in memory, we can minimize the amount of necessary address arithmetic. This problem is NP-complete, and we present a 2-approximation algorithm for the case of a single address register, along with experimental results. 1 Introduction Some architectures have post-increment and post-decrement addressing modes, which allow the following two instructions to be executed as one: (v load(r); r r + 1), and similiarly for (v load(r); r r 1). To exploit these addessing modes, variables should be laid out in memory so that as often as possible, (temporally) consecutive accesses correspond to (spatially) consecutive address locations. Proper memory layout will result in code that is both smaller and faster. Following the formulation of Liao et. al. [1] we use basic blocks of code to define an access graph on the variables of the block, and then seek a maximum weight path cover of the graph. We first define the access graph, and then the Max Weight Path Cover problem. Definition 1. The Access Sequence of a basic block B is the sequence of variables accessed in B. It is defined as follows. The access sequence of a op b (e.g. a = +b) is ab, and that of a b op c is abc. If B is a sequence of commands c 1 ; c 2 ;... ; c k ; and c i has access sequence s i, then the access sequence of B is s 1 s 2... s k. Definition 2. The Access Graph G = (V, E) of a basic block B is an undirected graph with vertex set V equal to the variables of B, with edge (u, v) iff u and v are adjacent somewhere in the access sequence σ of B. Each edge (u, v) is weighted with the number of adjacent occurrences of u and v in σ Department of Computer Science, Carnegie Mellon University. This write-up was prepared for Optimizing Compilers, course , Spring
2 Figure 1: An MWPC instance, with optimal solution. The Max Weight Path Cover problem is to cover the graph G with a set of node disjoint paths in G of maximum total edge weight. The formal definition is as follows Definition 3. The Max Weight Path Cover problem (MWPC) is, given a edge weighted, undirected graph G = (V, E), find a partition of V into ordered sets {P 1, P 2,..., P k } such that each P i is a path in G. That is, letting f(i) := P i, we can write each P i as {v i1, v i2,..., v if(i) } in a way that (v ij, v i(j+1) ) E[G] for all 1 j < f(i). The objective is then to maximize the sum weight of all edges in the paths, namely k i=1 f(i) j=1 c(v ij, v i(j+1) ). A solution is called a path cover. Once the path cover is found, the paths are extended into a linear ordering to be placed in memory in the obvious way (i.e. v 11, v 12,..., v 1f(1), v 21, v 22,..., v 2f(2), v 31,...). Notice how MWPC captures exactly the savings we obtain in code size. Unfortunately, MWPC is NP-complete. However, we were able to obtain an approximation algorithm detailed in section 4. We have implemented this approach on the C6X architecture. Experimental results appear in section 5. 2 Relevant Work Liao et. al. [1] introduce the reduction of the single offset assignment problem to MWPC. They present a heuristic based on Kruskal s maximum spanning tree algorithm. Their heuristic sorts the edges in non-increasing order of weight, and then in this order inserts each edge that does not increase the degree of any vertex above two. Liao et. al. give no approximation gaurantee for their heuristic. 3 Adapting SOA to Hyperblocks Liao et. al. [1] assume that the IR of the input procedure is logically divided into basic blocks. As the Pegasus/CASH IR uses hyperblocks to support predicated execution of multiple simultaneous 2
3 but mutually exclusive control paths, it was necessary to modify the basic SOA algorithm to account for this. To permit this, we define the access graph of a hyperblock differently than that of a basic block. Definition 4. The Access Graph of a hyperblock H is the weighted graph G = (V, E), with vertex set V being the set of variables accessed in H, and edge (u, v) with weight n occurring iff there is are n distinct control flow paths leading from u to v or from v to u, with no intervening variables accesses. The access graph of the procedure can the be found by merging the access graphs of all hyperblocks, using the same techniques as presented in Liao et. al. 4 Finding 2-Approximate Path Covers We find good path covers using the maximum weight cycle cover. We solve the following problem: Given an undirected, edge weighted graph G = (V, E) find a permutation σ on V that maximizes v V w(v, σ(v)), where w(u, v) is the weight of edge (u, v) if it exists in G, and zero otherwise. For each cycle of σ, delete all non-edges in the cycle. If any cycles remain, delete the minimum weight edge of each. Return the resulting edges as the path cover. Note that deleting the minimum cost edge from a length k cycle reduces its weight by at most 1/k, and all non-zero length cycles have length at least two, so the output has weight at least half the cycle cover weight. Yet the optimum cycle cover has weight at least that of the maximum weight path cover, and thus we obtain a two approximation. To find the optimum permutation σ, we reduce it to the max weight matching problem on the following complete bipartite graph B: Given G = (V, E) with weights w : E N, construct sets X, Y with X = Y = V. Let x, y be bijections from V to X and Y respectively. For each u, v V, add edges (x(u), y(v)) and (x(v), y(u)) to B of weight w(u, v), where as before, w(u, v) is the weight of edge (u, v) if it exists in G, and zero otherwise. If M is an max weight matching in B, then the optimal permutation is defined by σ(u) = v whenever (x(u), y(v)) M. 5 Experimental Results Due to a preexisting implementation issue with the provided register allocator s handling of spills, we were unable to benchmark our algorithm on sizable candidate functions. Of the functions we were able to test, of those which used frame variables, we found an average code reduction of 2.0%, corresponding to the conversion of 28.6% of all variable accesses to postincrement/postdecrement instructions. This compares well with the results of Liao et. al, who cite figures of 5% and 20% respectively for SOA. In none of our test cases were the final procedures longer than their unoptimized counterparts. The compile-time cost of the optimization was less than 0.01 seconds in all cases, meaning that there was no significant cost associated with the performance of the algorithm. Why does the Liao et. al. heuristic perform comparably to the 2-approximation algorithm? Though Liao et. al. give no approximation gaurantee for their heuristic, it in fact has an approximation gaurantee of exactly two, which we prove in the appendix. However, it does not lend itself to improved algorithms the way maximum cycle cover approaches do, and future work may yield practical improvements based on our algorithm. 3
4 6 Future Work There are several directions for future work. Minimizing the amount of address arithmetic in the case of several address registers does not appear to cleanly reduce to a graph theoretic problem such as MWPC It remains to find a fast approximation algorithm for it, if possible, to handle the general case. Various improvements to the single address register case are possible. Using the approximation algorithm to find an initial solution and then employing, e.g., local search may significantly improve performance. Further, ideas from sophisticated algorithms for Max Weight TSP can yield improvemented approximation guarantees, but are likely too slow in practice. This remains to be investigated. Lastly, when dealing with pieces of code above the level of basic blocks, profiling information could be used to weight the probability of consecutive accesses along an edge in the access graph. Giving more weight to hot edges in the access graph should result in faster code, although this may result in longer code than the original approach. 7 Conclusions We were able to successfully implement a novel extension to the work of Liao et. al, allowing their storage assignment scheme to function natively on a hyperblock-based representation. We also proved bounds on both their heuristic allocation scheme, and our more principled algorithm. The algorithm provides comparable results to those reported in the original paper, and requires a very small investment of compilation time. While in it s current state it provides only a modest improvement in code size, generalization of the algorithm to use multiple address registers or profiling information could easily provide more significant gains. References [1] Stan Liao, Srinivas Devadas, Kurt Keutzer, Steven Tjiang, and Albert Wang. Storage assignment to decrease code size. ACM Trans. Program. Lang. Syst., 18(3): , A Additional Proofs Theorem 1. The Liao et. al. heuristic has an approximation gaurantee of exactly 2. Proof. First, we sketch the lower bound. Let G be the following tree: a line on k+1 vertices (the back-bone of G), say v 0, v 1,..., v k with edges (v i, v i+1 ) of unit weight, and two leaves hanging off of each v i for 0 < i < k via edges of length 1 ɛ. The optimal solution, consisting of all edges not in the back-bone, has weight 2(k 1)(1 ɛ), while the heuristic returns the back-bone, of weight (k + 1). As k and ɛ 0, the ratio approaches two. So the approximation factor is no better than two. Now we prove the upper bound. Fix G, the optimal path cover C, and the output of the heuristic, L. Consider edge e C, e / L, of weight w(e). Let e = (u, v). Since e / L, by the time we process e in the list of edges ordered in non-increasing weight when running the heuristic, one of u or v already has degree two. WLOG, let it be u. Then the two edges of L incident on u each have weight at least w(e). We pay for such edge e using a charging scheme. Initially all edges e of L have charge c(e ) = 0. To pay for e, place a charge of w(e)/2 on each edge of L incident to u. Next consider e C L. Pay for it by placing a charge of w(e) on e. Let c(l) := e L c(e) be the charge on L. Clearly, w(c ) c(l), since each edge of C has had its weight paid for. We claim that for each e L, c(e) 2w(e), and thus c(l) 2w(L), and so w(l) w(c )/2. 4
5 Consider e L, e / C. An edge (u, v) of C charges an edge e L only if e is incident to u or v, and charges it at most w(e)/2 if e (u, v). Since the degree of any node in C is at most two, e can be charged by at most four such edges of C, for a total charge of c(e) w(e) = 2w(e). Next consider e L C. This edge is charged w(e) by its copy in C, but can have at most two edges of C sharing exactly one vertex with it. Each of these charges at most w(e)/2, for a total charge of c(e) w(e) w(e) = 2w(e). So w(c ) = c(l) 2w(L) and we are done. 5
Greedy Algorithms 1. For large values of d, brute force search is not feasible because there are 2 d
Greedy Algorithms 1 Simple Knapsack Problem Greedy Algorithms form an important class of algorithmic techniques. We illustrate the idea by applying it to a simplified version of the Knapsack Problem. Informally,
More informationHow to efficiently use the address register? Address register = contains the address of the operand to fetch from memory.
Lesson 13 Storage Assignment Optimizations Sequence of accesses is very important Simple Offset Assignment This lesson will focus on: Code size and data segment size How to efficiently use the address
More informationTheorem 2.9: nearest addition algorithm
There are severe limits on our ability to compute near-optimal tours It is NP-complete to decide whether a given undirected =(,)has a Hamiltonian cycle An approximation algorithm for the TSP can be used
More informationGreedy Algorithms 1 {K(S) K(S) C} For large values of d, brute force search is not feasible because there are 2 d {1,..., d}.
Greedy Algorithms 1 Simple Knapsack Problem Greedy Algorithms form an important class of algorithmic techniques. We illustrate the idea by applying it to a simplified version of the Knapsack Problem. Informally,
More informationApproximation Algorithms
Approximation Algorithms Subhash Suri June 5, 2018 1 Figure of Merit: Performance Ratio Suppose we are working on an optimization problem in which each potential solution has a positive cost, and we want
More informationCS 6783 (Applied Algorithms) Lecture 5
CS 6783 (Applied Algorithms) Lecture 5 Antonina Kolokolova January 19, 2012 1 Minimum Spanning Trees An undirected graph G is a pair (V, E); V is a set (of vertices or nodes); E is a set of (undirected)
More informationCMSC 451: Lecture 22 Approximation Algorithms: Vertex Cover and TSP Tuesday, Dec 5, 2017
CMSC 451: Lecture 22 Approximation Algorithms: Vertex Cover and TSP Tuesday, Dec 5, 2017 Reading: Section 9.2 of DPV. Section 11.3 of KT presents a different approximation algorithm for Vertex Cover. Coping
More informationApproximation Algorithms
Approximation Algorithms Prof. Tapio Elomaa tapio.elomaa@tut.fi Course Basics A 4 credit unit course Part of Theoretical Computer Science courses at the Laboratory of Mathematics There will be 4 hours
More informationCME 305: Discrete Mathematics and Algorithms Instructor: Reza Zadeh HW#3 Due at the beginning of class Thursday 02/26/15
CME 305: Discrete Mathematics and Algorithms Instructor: Reza Zadeh (rezab@stanford.edu) HW#3 Due at the beginning of class Thursday 02/26/15 1. Consider a model of a nonbipartite undirected graph in which
More informationNP-Hardness. We start by defining types of problem, and then move on to defining the polynomial-time reductions.
CS 787: Advanced Algorithms NP-Hardness Instructor: Dieter van Melkebeek We review the concept of polynomial-time reductions, define various classes of problems including NP-complete, and show that 3-SAT
More informationCMPSCI 311: Introduction to Algorithms Practice Final Exam
CMPSCI 311: Introduction to Algorithms Practice Final Exam Name: ID: Instructions: Answer the questions directly on the exam pages. Show all your work for each question. Providing more detail including
More informationProblem Set 3. MATH 778C, Spring 2009, Austin Mohr (with John Boozer) April 15, 2009
Problem Set 3 MATH 778C, Spring 2009, Austin Mohr (with John Boozer) April 15, 2009 1. Show directly that P 1 (s) P 1 (t) for all t s. Proof. Given G, let H s be a subgraph of G on s vertices such that
More informationGreedy algorithms is another useful way for solving optimization problems.
Greedy Algorithms Greedy algorithms is another useful way for solving optimization problems. Optimization Problems For the given input, we are seeking solutions that must satisfy certain conditions. These
More informationCS261: A Second Course in Algorithms Lecture #16: The Traveling Salesman Problem
CS61: A Second Course in Algorithms Lecture #16: The Traveling Salesman Problem Tim Roughgarden February 5, 016 1 The Traveling Salesman Problem (TSP) In this lecture we study a famous computational problem,
More informationDATA ACCESS PROFILING AND IMPROVED STRUCTURE FIELD REGROUPING IN PEGASUS. Matthew Moore and Vas Chellappa
DATA ACCESS PROFILING AND IMPROVED STRUCTURE FIELD REGROUPING IN PEGASUS Matthew Moore and Vas Chellappa Project Final Report, 15-745, SP05 Carnegie Mellon University ABSTRACT Cache hit rates play a significant
More informationGraphs. Pseudograph: multiple edges and loops allowed
Graphs G = (V, E) V - set of vertices, E - set of edges Undirected graphs Simple graph: V - nonempty set of vertices, E - set of unordered pairs of distinct vertices (no multiple edges or loops) Multigraph:
More informationApproximation Algorithms
Chapter 8 Approximation Algorithms Algorithm Theory WS 2016/17 Fabian Kuhn Approximation Algorithms Optimization appears everywhere in computer science We have seen many examples, e.g.: scheduling jobs
More informationSankalchand Patel College of Engineering - Visnagar Department of Computer Engineering and Information Technology. Assignment
Class: V - CE Sankalchand Patel College of Engineering - Visnagar Department of Computer Engineering and Information Technology Sub: Design and Analysis of Algorithms Analysis of Algorithm: Assignment
More informationCME 305: Discrete Mathematics and Algorithms Instructor: Reza Zadeh HW#3 Due at the beginning of class Thursday 03/02/17
CME 305: Discrete Mathematics and Algorithms Instructor: Reza Zadeh (rezab@stanford.edu) HW#3 Due at the beginning of class Thursday 03/02/17 1. Consider a model of a nonbipartite undirected graph in which
More informationγ(ɛ) (a, b) (a, d) (d, a) (a, b) (c, d) (d, d) (e, e) (e, a) (e, e) (a) Draw a picture of G.
MAD 3105 Spring 2006 Solutions for Review for Test 2 1. Define a graph G with V (G) = {a, b, c, d, e}, E(G) = {r, s, t, u, v, w, x, y, z} and γ, the function defining the edges, is given by the table ɛ
More informationOn Universal Cycles of Labeled Graphs
On Universal Cycles of Labeled Graphs Greg Brockman Harvard University Cambridge, MA 02138 United States brockman@hcs.harvard.edu Bill Kay University of South Carolina Columbia, SC 29208 United States
More informationCPSC 536N: Randomized Algorithms Term 2. Lecture 10
CPSC 536N: Randomized Algorithms 011-1 Term Prof. Nick Harvey Lecture 10 University of British Columbia In the first lecture we discussed the Max Cut problem, which is NP-complete, and we presented a very
More informationSolutions for the Exam 6 January 2014
Mastermath and LNMB Course: Discrete Optimization Solutions for the Exam 6 January 2014 Utrecht University, Educatorium, 13:30 16:30 The examination lasts 3 hours. Grading will be done before January 20,
More informationLecture 5: Graphs. Rajat Mittal. IIT Kanpur
Lecture : Graphs Rajat Mittal IIT Kanpur Combinatorial graphs provide a natural way to model connections between different objects. They are very useful in depicting communication networks, social networks
More information6. Lecture notes on matroid intersection
Massachusetts Institute of Technology 18.453: Combinatorial Optimization Michel X. Goemans May 2, 2017 6. Lecture notes on matroid intersection One nice feature about matroids is that a simple greedy algorithm
More informationTraveling Salesman Problem (TSP) Input: undirected graph G=(V,E), c: E R + Goal: find a tour (Hamiltonian cycle) of minimum cost
Traveling Salesman Problem (TSP) Input: undirected graph G=(V,E), c: E R + Goal: find a tour (Hamiltonian cycle) of minimum cost Traveling Salesman Problem (TSP) Input: undirected graph G=(V,E), c: E R
More informationSOLVING LARGE CARPOOLING PROBLEMS USING GRAPH THEORETIC TOOLS
July, 2014 1 SOLVING LARGE CARPOOLING PROBLEMS USING GRAPH THEORETIC TOOLS Irith Ben-Arroyo Hartman Datasim project - (joint work with Abed Abu dbai, Elad Cohen, Daniel Keren) University of Haifa, Israel
More informationDefinition 1.1. A matching M in a graph G is called maximal if there is no matching M in G so that M M.
1 Matchings Before, we defined a matching as a set of edges no two of which share an end in common. Suppose that we have a set of jobs and people and we want to match as many jobs to people as we can.
More informationImproved approximation ratios for traveling salesperson tours and paths in directed graphs
Improved approximation ratios for traveling salesperson tours and paths in directed graphs Uriel Feige Mohit Singh August, 2006 Abstract In metric asymmetric traveling salesperson problems the input is
More informationTreewidth and graph minors
Treewidth and graph minors Lectures 9 and 10, December 29, 2011, January 5, 2012 We shall touch upon the theory of Graph Minors by Robertson and Seymour. This theory gives a very general condition under
More information1 Undirected Vertex Geography UVG
Geography Start with a chip sitting on a vertex v of a graph or digraph G. A move consists of moving the chip to a neighbouring vertex. In edge geography, moving the chip from x to y deletes the edge (x,
More informationAMS /672: Graph Theory Homework Problems - Week V. Problems to be handed in on Wednesday, March 2: 6, 8, 9, 11, 12.
AMS 550.47/67: Graph Theory Homework Problems - Week V Problems to be handed in on Wednesday, March : 6, 8, 9,,.. Assignment Problem. Suppose we have a set {J, J,..., J r } of r jobs to be filled by a
More informationBasic Combinatorics. Math 40210, Section 01 Fall Homework 4 Solutions
Basic Combinatorics Math 40210, Section 01 Fall 2012 Homework 4 Solutions 1.4.2 2: One possible implementation: Start with abcgfjiea From edge cd build, using previously unmarked edges: cdhlponminjkghc
More informationChapter 5 Graph Algorithms Algorithm Theory WS 2012/13 Fabian Kuhn
Chapter 5 Graph Algorithms Algorithm Theory WS 2012/13 Fabian Kuhn Graphs Extremely important concept in computer science Graph, : node (or vertex) set : edge set Simple graph: no self loops, no multiple
More informationApproximation Algorithms
Approximation Algorithms Prof. Tapio Elomaa tapio.elomaa@tut.fi Course Basics A new 4 credit unit course Part of Theoretical Computer Science courses at the Department of Mathematics There will be 4 hours
More information1 The Traveling Salesperson Problem (TSP)
CS 598CSC: Approximation Algorithms Lecture date: January 23, 2009 Instructor: Chandra Chekuri Scribe: Sungjin Im In the previous lecture, we had a quick overview of several basic aspects of approximation
More information5. Lecture notes on matroid intersection
Massachusetts Institute of Technology Handout 14 18.433: Combinatorial Optimization April 1st, 2009 Michel X. Goemans 5. Lecture notes on matroid intersection One nice feature about matroids is that a
More informationCOMP 355 Advanced Algorithms Approximation Algorithms: VC and TSP Chapter 11 (KT) Section (CLRS)
COMP 355 Advanced Algorithms Approximation Algorithms: VC and TSP Chapter 11 (KT) Section 35.1-35.2(CLRS) 1 Coping with NP-Completeness Brute-force search: This is usually only a viable option for small
More informationNP Completeness. Andreas Klappenecker [partially based on slides by Jennifer Welch]
NP Completeness Andreas Klappenecker [partially based on slides by Jennifer Welch] Dealing with NP-Complete Problems Dealing with NP-Completeness Suppose the problem you need to solve is NP-complete. What
More informationIntroduction to Approximation Algorithms
Introduction to Approximation Algorithms Dr. Gautam K. Das Departmet of Mathematics Indian Institute of Technology Guwahati, India gkd@iitg.ernet.in February 19, 2016 Outline of the lecture Background
More information8 Matroid Intersection
8 Matroid Intersection 8.1 Definition and examples 8.2 Matroid Intersection Algorithm 8.1 Definitions Given two matroids M 1 = (X, I 1 ) and M 2 = (X, I 2 ) on the same set X, their intersection is M 1
More informationAnswers to specimen paper questions. Most of the answers below go into rather more detail than is really needed. Please let me know of any mistakes.
Answers to specimen paper questions Most of the answers below go into rather more detail than is really needed. Please let me know of any mistakes. Question 1. (a) The degree of a vertex x is the number
More informationLecture 7. s.t. e = (u,v) E x u + x v 1 (2) v V x v 0 (3)
COMPSCI 632: Approximation Algorithms September 18, 2017 Lecturer: Debmalya Panigrahi Lecture 7 Scribe: Xiang Wang 1 Overview In this lecture, we will use Primal-Dual method to design approximation algorithms
More informationVertex Cover Approximations
CS124 Lecture 20 Heuristics can be useful in practice, but sometimes we would like to have guarantees. Approximation algorithms give guarantees. It is worth keeping in mind that sometimes approximation
More informationCPS 102: Discrete Mathematics. Quiz 3 Date: Wednesday November 30, Instructor: Bruce Maggs NAME: Prob # Score. Total 60
CPS 102: Discrete Mathematics Instructor: Bruce Maggs Quiz 3 Date: Wednesday November 30, 2011 NAME: Prob # Score Max Score 1 10 2 10 3 10 4 10 5 10 6 10 Total 60 1 Problem 1 [10 points] Find a minimum-cost
More informationGreedy Algorithms and Matroids. Andreas Klappenecker
Greedy Algorithms and Matroids Andreas Klappenecker Greedy Algorithms A greedy algorithm solves an optimization problem by working in several phases. In each phase, a decision is made that is locally optimal
More informationCS 473: Algorithms. Ruta Mehta. Spring University of Illinois, Urbana-Champaign. Ruta (UIUC) CS473 1 Spring / 36
CS 473: Algorithms Ruta Mehta University of Illinois, Urbana-Champaign Spring 2018 Ruta (UIUC) CS473 1 Spring 2018 1 / 36 CS 473: Algorithms, Spring 2018 LP Duality Lecture 20 April 3, 2018 Some of the
More informationCS 532: 3D Computer Vision 14 th Set of Notes
1 CS 532: 3D Computer Vision 14 th Set of Notes Instructor: Philippos Mordohai Webpage: www.cs.stevens.edu/~mordohai E-mail: Philippos.Mordohai@stevens.edu Office: Lieb 215 Lecture Outline Triangulating
More informationSteiner Trees and Forests
Massachusetts Institute of Technology Lecturer: Adriana Lopez 18.434: Seminar in Theoretical Computer Science March 7, 2006 Steiner Trees and Forests 1 Steiner Tree Problem Given an undirected graph G
More informationGreedy Algorithms and Matroids. Andreas Klappenecker
Greedy Algorithms and Matroids Andreas Klappenecker Greedy Algorithms A greedy algorithm solves an optimization problem by working in several phases. In each phase, a decision is made that is locally optimal
More information1 Definition of Reduction
1 Definition of Reduction Problem A is reducible, or more technically Turing reducible, to problem B, denoted A B if there a main program M to solve problem A that lacks only a procedure to solve problem
More informationSmall Survey on Perfect Graphs
Small Survey on Perfect Graphs Michele Alberti ENS Lyon December 8, 2010 Abstract This is a small survey on the exciting world of Perfect Graphs. We will see when a graph is perfect and which are families
More information/ Approximation Algorithms Lecturer: Michael Dinitz Topic: Linear Programming Date: 2/24/15 Scribe: Runze Tang
600.469 / 600.669 Approximation Algorithms Lecturer: Michael Dinitz Topic: Linear Programming Date: 2/24/15 Scribe: Runze Tang 9.1 Linear Programming Suppose we are trying to approximate a minimization
More informationAdvanced Algorithms Class Notes for Monday, October 23, 2012 Min Ye, Mingfu Shao, and Bernard Moret
Advanced Algorithms Class Notes for Monday, October 23, 2012 Min Ye, Mingfu Shao, and Bernard Moret Greedy Algorithms (continued) The best known application where the greedy algorithm is optimal is surely
More informationApproximation Algorithms for Wavelength Assignment
Approximation Algorithms for Wavelength Assignment Vijay Kumar Atri Rudra Abstract Winkler and Zhang introduced the FIBER MINIMIZATION problem in [3]. They showed that the problem is NP-complete but left
More informationProblem Set 1. Solution. CS4234: Optimization Algorithms. Solution Sketches
CS4234: Optimization Algorithms Sketches Problem Set 1 S-1. You are given a graph G = (V, E) with n nodes and m edges. (Perhaps the graph represents a telephone network.) Each edge is colored either blue
More information5 MST and Greedy Algorithms
5 MST and Greedy Algorithms One of the traditional and practically motivated problems of discrete optimization asks for a minimal interconnection of a given set of terminals (meaning that every pair will
More informationDecreasing a key FIB-HEAP-DECREASE-KEY(,, ) 3.. NIL. 2. error new key is greater than current key 6. CASCADING-CUT(, )
Decreasing a key FIB-HEAP-DECREASE-KEY(,, ) 1. if >. 2. error new key is greater than current key 3.. 4.. 5. if NIL and.
More information/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Approximation algorithms Date: 11/27/18
601.433/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Approximation algorithms Date: 11/27/18 22.1 Introduction We spent the last two lectures proving that for certain problems, we can
More informationDO NOT RE-DISTRIBUTE THIS SOLUTION FILE
Professor Kindred Math 104, Graph Theory Homework 2 Solutions February 7, 2013 Introduction to Graph Theory, West Section 1.2: 26, 38, 42 Section 1.3: 14, 18 Section 2.1: 26, 29, 30 DO NOT RE-DISTRIBUTE
More informationCS473-Algorithms I. Lecture 13-A. Graphs. Cevdet Aykanat - Bilkent University Computer Engineering Department
CS473-Algorithms I Lecture 3-A Graphs Graphs A directed graph (or digraph) G is a pair (V, E), where V is a finite set, and E is a binary relation on V The set V: Vertex set of G The set E: Edge set of
More information11.4 Bipartite Multigraphs
11.4 Bipartite Multigraphs Introduction Definition A graph G is bipartite if we can partition the vertices into two disjoint subsets U and V such that every edge of G has one incident vertex in U and the
More informationUnit 8: Coping with NP-Completeness. Complexity classes Reducibility and NP-completeness proofs Coping with NP-complete problems. Y.-W.
: Coping with NP-Completeness Course contents: Complexity classes Reducibility and NP-completeness proofs Coping with NP-complete problems Reading: Chapter 34 Chapter 35.1, 35.2 Y.-W. Chang 1 Complexity
More informationAnalysis of Algorithms Prof. Karen Daniels
UMass Lowell Computer Science 91.503 Analysis of Algorithms Prof. Karen Daniels Spring, 2010 Lecture 2 Tuesday, 2/2/10 Design Patterns for Optimization Problems Greedy Algorithms Algorithmic Paradigm Context
More informationOutline. Graphs. Divide and Conquer.
GRAPHS COMP 321 McGill University These slides are mainly compiled from the following resources. - Professor Jaehyun Park slides CS 97SI - Top-coder tutorials. - Programming Challenges books. Outline Graphs.
More informationSolving NP-hard Problems on Special Instances
Solving NP-hard Problems on Special Instances Solve it in poly- time I can t You can assume the input is xxxxx No Problem, here is a poly-time algorithm 1 Solving NP-hard Problems on Special Instances
More informationCSE 417 Branch & Bound (pt 4) Branch & Bound
CSE 417 Branch & Bound (pt 4) Branch & Bound Reminders > HW8 due today > HW9 will be posted tomorrow start early program will be slow, so debugging will be slow... Review of previous lectures > Complexity
More informationMath 15 - Spring Homework 2.6 Solutions 1. (2.6 # 20) The following graph has 45 vertices. In Sagemath, we can define it like so:
Math 15 - Spring 2017 - Homework 2.6 Solutions 1. (2.6 # 20) The following graph has 45 vertices. In Sagemath, we can define it like so: dm = {0: [1,15], 1: [2,16,31], 2: [3,17,32], 3: [4,18,33], 4: [5,19,34],
More informationarxiv: v2 [cs.dm] 3 Dec 2014
The Student/Project Allocation problem with group projects Aswhin Arulselvan, Ágnes Cseh, and Jannik Matuschke arxiv:4.035v [cs.dm] 3 Dec 04 Department of Management Science, University of Strathclyde,
More informationStorage Allocation Based on Client Preferences
The Interdisciplinary Center School of Computer Science Herzliya, Israel Storage Allocation Based on Client Preferences by Benny Vaksendiser Prepared under the supervision of Dr. Tami Tamir Abstract Video
More informationPCP and Hardness of Approximation
PCP and Hardness of Approximation January 30, 2009 Our goal herein is to define and prove basic concepts regarding hardness of approximation. We will state but obviously not prove a PCP theorem as a starting
More informationFast and Simple Algorithms for Weighted Perfect Matching
Fast and Simple Algorithms for Weighted Perfect Matching Mirjam Wattenhofer, Roger Wattenhofer {mirjam.wattenhofer,wattenhofer}@inf.ethz.ch, Department of Computer Science, ETH Zurich, Switzerland Abstract
More informationIntroduction to Optimization
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
More information5 MST and Greedy Algorithms
5 MST and Greedy Algorithms One of the traditional and practically motivated problems of discrete optimization asks for a minimal interconnection of a given set of terminals (meaning that every pair will
More informationMinimum Spanning Trees
Minimum Spanning Trees Overview Problem A town has a set of houses and a set of roads. A road connects and only houses. A road connecting houses u and v has a repair cost w(u, v). Goal: Repair enough (and
More informationStrongly Connected Spanning Subgraph for Almost Symmetric Networks
CCC 2015, Kingston, Ontario, August 10 12, 2015 Strongly Connected Spanning Subgraph for Almost Symmetric Networks A. Karim Abu-Affash Paz Carmi Anat Parush Tzur Abstract In the strongly connected spanning
More informationMatching and Planarity
Matching and Planarity Po-Shen Loh June 010 1 Warm-up 1. (Bondy 1.5.9.) There are n points in the plane such that every pair of points has distance 1. Show that there are at most n (unordered) pairs of
More informationPartha Sarathi Mandal
MA 515: Introduction to Algorithms & MA353 : Design and Analysis of Algorithms [3-0-0-6] Lecture 39 http://www.iitg.ernet.in/psm/indexing_ma353/y09/index.html Partha Sarathi Mandal psm@iitg.ernet.in Dept.
More informationLecture 24: More Reductions (1997) Steven Skiena. skiena
Lecture 24: More Reductions (1997) Steven Skiena Department of Computer Science State University of New York Stony Brook, NY 11794 4400 http://www.cs.sunysb.edu/ skiena Prove that subgraph isomorphism
More informationCS 341: Algorithms. Douglas R. Stinson. David R. Cheriton School of Computer Science University of Waterloo. February 26, 2019
CS 341: Algorithms Douglas R. Stinson David R. Cheriton School of Computer Science University of Waterloo February 26, 2019 D.R. Stinson (SCS) CS 341 February 26, 2019 1 / 296 1 Course Information 2 Introduction
More informationReductions. Linear Time Reductions. Desiderata. Reduction. Desiderata. Classify problems according to their computational requirements.
Desiderata Reductions Desiderata. Classify problems according to their computational requirements. Frustrating news. Huge number of fundamental problems have defied classification for decades. Desiderata'.
More informationby conservation of flow, hence the cancelation. Similarly, we have
Chapter 13: Network Flows and Applications Network: directed graph with source S and target T. Non-negative edge weights represent capacities. Assume no edges into S or out of T. (If necessary, we can
More informationVoronoi Diagrams and Delaunay Triangulations. O Rourke, Chapter 5
Voronoi Diagrams and Delaunay Triangulations O Rourke, Chapter 5 Outline Preliminaries Properties and Applications Computing the Delaunay Triangulation Preliminaries Given a function f: R 2 R, the tangent
More informationModules. 6 Hamilton Graphs (4-8 lectures) Introduction Necessary conditions and sufficient conditions Exercises...
Modules 6 Hamilton Graphs (4-8 lectures) 135 6.1 Introduction................................ 136 6.2 Necessary conditions and sufficient conditions............. 137 Exercises..................................
More informationModule 6 NP-Complete Problems and Heuristics
Module 6 NP-Complete Problems and Heuristics Dr. Natarajan Meghanathan Professor of Computer Science Jackson State University Jackson, MS 97 E-mail: natarajan.meghanathan@jsums.edu Optimization vs. Decision
More information1 Better Approximation of the Traveling Salesman
Stanford University CS261: Optimization Handout 4 Luca Trevisan January 13, 2011 Lecture 4 In which we describe a 1.5-approximate algorithm for the Metric TSP, we introduce the Set Cover problem, observe
More informationval(y, I) α (9.0.2) α (9.0.3)
CS787: Advanced Algorithms Lecture 9: Approximation Algorithms In this lecture we will discuss some NP-complete optimization problems and give algorithms for solving them that produce a nearly optimal,
More informationApproximation slides 1. An optimal polynomial algorithm for the Vertex Cover and matching in Bipartite graphs
Approximation slides 1 An optimal polynomial algorithm for the Vertex Cover and matching in Bipartite graphs Approximation slides 2 Linear independence A collection of row vectors {v T i } are independent
More information1 The Traveling Salesman Problem
Comp 260: Advanced Algorithms Tufts University, Spring 2018 Prof. Lenore Cowen Scribe: Duc Nguyen Lecture 3a: The Traveling Salesman Problem 1 The Traveling Salesman Problem The Traveling Salesman Problem
More informationIntroduction to Graph Theory
Introduction to Graph Theory Tandy Warnow January 20, 2017 Graphs Tandy Warnow Graphs A graph G = (V, E) is an object that contains a vertex set V and an edge set E. We also write V (G) to denote the vertex
More informationTraveling Salesperson Problem (TSP)
TSP-0 Traveling Salesperson Problem (TSP) Input: Undirected edge weighted complete graph G = (V, E, W ), where W : e R +. Tour: Find a path that starts at vertex 1, visits every vertex exactly once, and
More informationMinimum Spanning Trees My T. UF
Introduction to Algorithms Minimum Spanning Trees @ UF Problem Find a low cost network connecting a set of locations Any pair of locations are connected There is no cycle Some applications: Communication
More informationLecture 25 Notes Spanning Trees
Lecture 25 Notes Spanning Trees 15-122: Principles of Imperative Computation (Spring 2016) Frank Pfenning 1 Introduction The following is a simple example of a connected, undirected graph with 5 vertices
More informationModule 6 NP-Complete Problems and Heuristics
Module 6 NP-Complete Problems and Heuristics Dr. Natarajan Meghanathan Professor of Computer Science Jackson State University Jackson, MS 397 E-mail: natarajan.meghanathan@jsums.edu Optimization vs. Decision
More informationImplementation Techniques
V Implementation Techniques 34 Efficient Evaluation of the Valid-Time Natural Join 35 Efficient Differential Timeslice Computation 36 R-Tree Based Indexing of Now-Relative Bitemporal Data 37 Light-Weight
More informationFully dynamic algorithm for recognition and modular decomposition of permutation graphs
Fully dynamic algorithm for recognition and modular decomposition of permutation graphs Christophe Crespelle Christophe Paul CNRS - Département Informatique, LIRMM, Montpellier {crespell,paul}@lirmm.fr
More informationarxiv: v2 [cs.ds] 18 May 2015
Optimal Shuffle Code with Permutation Instructions Sebastian Buchwald, Manuel Mohr, and Ignaz Rutter Karlsruhe Institute of Technology {sebastian.buchwald, manuel.mohr, rutter}@kit.edu arxiv:1504.07073v2
More informationChapter 23. Minimum Spanning Trees
Chapter 23. Minimum Spanning Trees We are given a connected, weighted, undirected graph G = (V,E;w), where each edge (u,v) E has a non-negative weight (often called length) w(u,v). The Minimum Spanning
More informationLecture Notes: Euclidean Traveling Salesman Problem
IOE 691: Approximation Algorithms Date: 2/6/2017, 2/8/2017 ecture Notes: Euclidean Traveling Salesman Problem Instructor: Viswanath Nagarajan Scribe: Miao Yu 1 Introduction In the Euclidean Traveling Salesman
More informationFebruary 24, :52 World Scientific Book - 9in x 6in soltys alg. Chapter 3. Greedy Algorithms
Chapter 3 Greedy Algorithms Greedy algorithms are algorithms prone to instant gratification. Without looking too far ahead, at each step they make a locally optimum choice, with the hope that it will lead
More information