Applying Edge Partitioning to SPFD's 1 Applying Edge Partitioning to SPFD’s 219B Project Presentation Trevor Meyerowitz Mentor: Subarna Sinha Professor:

Slides:



Advertisements
Similar presentations
Heuristic Search techniques
Advertisements

§3 Shortest Path Algorithms Given a digraph G = ( V, E ), and a cost function c( e ) for e  E( G ). The length of a path P from source to destination.
Bayesian Networks, Winter Yoav Haimovitch & Ariel Raviv 1.
Greedy Algorithms Greed is good. (Some of the time)
1 Discrete Structures & Algorithms Graphs and Trees: III EECE 320.
Mauro Sozio and Aristides Gionis Presented By:
Minimum Spanning Trees Definition Two properties of MST’s Prim and Kruskal’s Algorithm –Proofs of correctness Boruvka’s algorithm Verifying an MST Randomized.
Fast FAST By Noga Alon, Daniel Lokshtanov And Saket Saurabh Presentation by Gil Einziger.
Great Theoretical Ideas in Computer Science.
1 Discrete Structures & Algorithms Graphs and Trees: II EECE 320.
Introduction to Approximation Algorithms Lecture 12: Mar 1.
Implementation of Graph Decomposition and Recursive Closures Graph Decomposition and Recursive Closures was published in 2003 by Professor Chen. The project.
1 Spanning Trees Lecture 20 CS2110 – Spring
Graph Algorithms: Minimum Spanning Tree We are given a weighted, undirected graph G = (V, E), with weight function w:
Tirgul 10 Rehearsal about Universal Hashing Solving two problems from theoretical exercises: –T2 q. 1 –T3 q. 2.
Recent Development on Elimination Ordering Group 1.
Improving code generation. Better code generation requires greater context Over expressions: optimal ordering of subtrees Over basic blocks: Common subexpression.
Reducing Multi-Valued Algebraic Operations to Binary J.-H. Roland Jiang Alan Mishchenko Robert K. Brayton Dept. of EECS University of California, Berkeley.
1 Multi-Valued Logic Synthesis R. K. Brayton and S. P. Khatri University of California Berkeley.
Network Coding Project presentation Communication Theory 16:332:545 Amith Vikram Atin Kumar Jasvinder Singh Vinoo Ganesan.
SPFD-Based Wire Removal in a Network of PLAs Sunil P. Khatri* Subarnarekha Sinha* Andreas Kuehlmann** Robert K. Brayton* Alberto Sangiovanni-Vincentelli*
CSE 421 Algorithms Richard Anderson Lecture 4. What does it mean for an algorithm to be efficient?
A scalable multilevel algorithm for community structure detection
SubSea: An Efficient Heuristic Algorithm for Subgraph Isomorphism Vladimir Lipets Ben-Gurion University of the Negev Joint work with Prof. Ehud Gudes.
DAG-Aware AIG Rewriting Alan Mishchenko, Satrajit Chatterjee, Robert Brayton Department of EECS, University of California Berkeley Presented by Rozana.
The community-search problem and how to plan a successful cocktail party Mauro SozioAris Gionis Max Planck Institute, Germany Yahoo! Research, Barcelona.
Coloring Algorithms and Networks. Coloring2 Graph coloring Vertex coloring: –Function f: V  C, such that for all {v,w}  E: f(v)  f(w) Chromatic number.
3/29/05Tucker, Sec Applied Combinatorics, 4th Ed. Alan Tucker Section 4.2 Minimal Spanning Trees Prepared by Amanda Dargie and Michele Fretta.
Improving Code Generation Honors Compilers April 16 th 2002.
Carmine Cerrone, Raffaele Cerulli, Bruce Golden GO IX Sirmione, Italy July
Backtracking.
Approximating the MST Weight in Sublinear Time Bernard Chazelle (Princeton) Ronitt Rubinfeld (NEC) Luca Trevisan (U.C. Berkeley)
1 Introduction to Approximation Algorithms. 2 NP-completeness Do your best then.
Fixed Parameter Complexity Algorithms and Networks.
Identifying Reversible Functions From an ROBDD Adam MacDonald.
Crossing Minimisation (1) Ronald Kieft. Global contents Specific 2-layer Crossing Minimisation techniques After the break, by Johan Crossing Minimisation.
Excursions in Modern Mathematics, 7e: Copyright © 2010 Pearson Education, Inc. 6 The Mathematics of Touring 6.1Hamilton Paths and Hamilton Circuits.
Graph-based Segmentation. Main Ideas Convert image into a graph Vertices for the pixels Vertices for the pixels Edges between the pixels Edges between.
Graph Theory Topics to be covered:
APPROXIMATION ALGORITHMS VERTEX COVER – MAX CUT PROBLEMS
1 Introduction to Approximation Algorithms. 2 NP-completeness Do your best then.
MCS 312: NP Completeness and Approximation algorithms Instructor Neelima Gupta
Optimization of Wavelength Assignment for QoS Multicast in WDM Networks Xiao-Hua Jia, Ding-Zhu Du, Xiao-Dong Hu, Man-Kei Lee, and Jun Gu, IEEE TRANSACTIONS.
A Clustering Algorithm based on Graph Connectivity Balakrishna Thiagarajan Computer Science and Engineering State University of New York at Buffalo.
A Graph-based Friend Recommendation System Using Genetic Algorithm
Prims’ spanning tree algorithm Given: connected graph (V, E) (sets of vertices and edges) V1= {an arbitrary node of V}; E1= {}; //inv: (V1, E1) is a tree,
10/25/ VLSI Physical Design Automation Prof. David Pan Office: ACES Lecture 3. Circuit Partitioning.
ANALYSIS AND IMPLEMENTATION OF GRAPH COLORING ALGORITHMS FOR REGISTER ALLOCATION By, Sumeeth K. C Vasanth K.
Tao Lin Chris Chu TPL-Aware Displacement- driven Detailed Placement Refinement with Coloring Constraints ISPD ‘15.
Techniques for Proving NP-Completeness Show that a special case of the problem you are interested in is NP- complete. For example: The problem of finding.
CSE 589 Part VI. Reading Skiena, Sections 5.5 and 6.8 CLR, chapter 37.
CS270 Project Overview Maximum Planar Subgraph Danyel Fisher Jason Hong Greg Lawrence Jimmy Lin.
Why consider ND-MV networks? Multi-Values: Multi-valued domains can be used to explore larger optimization spaces. Several interesting direct applications.
CSE 421 Algorithms Richard Anderson Winter 2009 Lecture 5.
CprE566 / Fall 06 / Prepared by Chris ChuPartitioning1 CprE566 Partitioning.
NETWORK FLOWS Shruti Aggrawal Preeti Palkar. Requirements 1.Implement the Ford-Fulkerson algorithm for computing network flow in bipartite graphs. 2.For.
Optimizing server placement in distributed systems in the presence of competition Jan-Jan Wu( 吳真貞 ), Shu-Fan Shih ( 施書帆 ), Pangfeng Liu ( 劉邦鋒 ), Yi-Min.
Network Partition –Finding modules of the network. Graph Clustering –Partition graphs according to the connectivity. –Nodes within a cluster is highly.
On the Ability of Graph Coloring Heuristics to Find Substructures in Social Networks David Chalupa By, Tejaswini Nallagatla.
Theory of Computational Complexity Yusuke FURUKAWA Iwama Ito lab M1.
GUILLOU Frederic. Outline Introduction Motivations The basic recommendation system First phase : semantic similarities Second phase : communities Application.
Timetable Problem solving using Graph Coloring
Graph-based Segmentation
Chapter 5. Greedy Algorithms
Approximating the MST Weight in Sublinear Time
Nithin Michael, Yao Wang, G. Edward Suh and Ao Tang Cornell University
Algorithms and Networks
What is the next line of the proof?
Great Theoretical Ideas in Computer Science
Algorithms for Budget-Constrained Survivable Topology Design
Presentation transcript:

Applying Edge Partitioning to SPFD's 1 Applying Edge Partitioning to SPFD’s 219B Project Presentation Trevor Meyerowitz Mentor: Subarna Sinha Professor: Robert Brayton 5/16/2000

Applying Edge Partitioning to SPFD's 2 Outline of Presentation A Refresher on SPFD’s Motivation of the Program Example Partitioning Explanation of Different Algorithms Results Future Work Conclusion

Applying Edge Partitioning to SPFD's 3 SPFD’s Sets of Pairs of Functions to be Distinguished Can be represented as graph –Each node represents a care value –Missing nodes are don’t cares –Nodes with different values have an edge between them –For Binary functions this results in a bi-partite graph ABC F(A,B,C) * *

Applying Edge Partitioning to SPFD's 4 SPFD’s When Applied to a multivalued function with k values, a k-partite graph results Sample example –Make 0’s red, 1’s green, 2’s yellow –Add edges between different colors ABC F(A,B,C) *

Applying Edge Partitioning to SPFD's 5 Motivation SPFD’s provide great flexibility but… –This is a non-polynomial problem –Current implementations (bdd, sat) are slow and memory intensive More Heuristics are needed So let’s try formulating this as a graph partitioning and coloring problem –both have many heuristics, but they haven’t really been studied together

Applying Edge Partitioning to SPFD's 6 SPFD Partitioning Initial SPFD’s are propagated back to the local inputs to form their SPFD’s –This can also be viewed as taking the edges from the main and placing them into the graphs of the local inputs Each edge must be propagated back to a subgraph that can distinguish between its vertices

Applying Edge Partitioning to SPFD's 7 SPFD Partitioning The number of colors in each sub-graph represents complexity We want the minimal coloring over all of the sub-graphs Can’t assume k-partite topology of a graph because this is only true for the output nodes

Applying Edge Partitioning to SPFD's 8 SPFD Partitioning Example ABC F(A,B,C) * * * * F(a,b,c) G(a,b)H(b,c) ab c Primary Output F(a,b,c) has two local inputs G(a,b) and H(b,c) Truth Table for F(A,B,C) SPFD Graph Observation: If a local function doesn’t contain any distinguishing primary inputs between the vertices for the given edge, then the edge can’t be placed in the SPFD graph of that function.

Applying Edge Partitioning to SPFD's 9 SPFD Partitioning Example ABC F(A,B,C) * * * * Truth Table for F(A,B,C) SPFD Graph SPFD Graph for G(a,b) SPFD Graph for H(b,c)

Applying Edge Partitioning to SPFD's 10 SPFD Partitioning Example ABC F(A,B,C) * * * * Truth Table for F(A,B,C) SPFD Graph SPFD Graph for G(a,b) SPFD Graph for H(b,c) Edge From 000 to 001. Only distinguished by A so it must be placed in G. Color graph appropiately.

Applying Edge Partitioning to SPFD's 11 SPFD Partitioning Example ABC F(A,B,C) * * * * Truth Table for F(A,B,C) SPFD Graph SPFD Graph for G(a,b) SPFD Graph for H(b,c) Edge From 100 to 101. Only distinguished by C so it must be placed in H. Color graph appropriately.

Applying Edge Partitioning to SPFD's 12 SPFD Partitioning Example ABC F(A,B,C) * * * * Truth Table for F(A,B,C) SPFD Graph SPFD Graph for G(a,b) SPFD Graph for H(b,c) Choose Edge From 000 to 010. It can go into either graph without increasing coloring. So add it to H.

Applying Edge Partitioning to SPFD's 13 SPFD Partitioning Example ABC F(A,B,C) * * * * Truth Table for F(A,B,C) SPFD Graph SPFD Graph for G(a,b) SPFD Graph for H(b,c) Choose Edge From 100 to 010. It can be placed in either w/o increasing coloring. So add it to G.

Applying Edge Partitioning to SPFD's 14 SPFD Partitioning Example ABC F(A,B,C) * * * * Truth Table for F(A,B,C) SPFD Graph SPFD Graph for G(a,b) SPFD Graph for H(b,c) Final Edge From 100 to 010. It can be placed in either w/o increasing coloring. So add it to H.

Applying Edge Partitioning to SPFD's 15 SPFD Partitioning Example (Lessons Learned) With no restrictions the minimally colored partition is obtained by placing all edges into 1 sub-graph Edge Ordering is key to the result –Choose forced edges first –Next choose edges that don’t increase coloring –Finally place the edges that do increase coloring

Applying Edge Partitioning to SPFD's 16 Outline of Presentation A Refresher on SPFD’s Motivation of the Program Example Partitioning Explanation of Different Algorithms Results Future Work Conclusion

Applying Edge Partitioning to SPFD's 17 The Algorithm The Family of Algorithms outlined here can be broken down into these groups. –Pre-processing –Edge Ordering –Edge Placement –Post-processing Currently varied To be varied in the future

Applying Edge Partitioning to SPFD's 18 The Algorithm: Pre-processing Read in initial graph data + build SPFD graph Color the initial SPFD graph using favorite graph coloring heuristic (DSATUR) –This gives information about graph topology that can be used in future steps Read in edge restrictions for each sub-graph and store using hash tables

Applying Edge Partitioning to SPFD's 19 The Algorithm: Edge Ordering One of the most important steps Different ordering techniques explored –Random (the control) –Vertices based on their number of edges and their frequencies –Vertices based on their edges + colors and their frequencies –Edge based on the colors of the 2 vertices + their frequencies

Applying Edge Partitioning to SPFD's 20 The Algorithm: Edge Placement This is the same for all algorithms The steps are: –Edges are traversed based on order obtained –Place all edges that have up no options –Place all edges that don’t add to the coloring of any of the sub-graphs –Place edge(s) that increase colorings by minimal amount. –Repeat steps until all edges are placed

Applying Edge Partitioning to SPFD's 21 The Algorithm: Post- Processing Given greediness of coloring in edge placement, recolor the sub-graphs Then try edge swapping among different subgraphs using below techniques –breaking up maximal cliques –removing edges from minimally used colored vertices –random annealing for ripup and recoloring

Applying Edge Partitioning to SPFD's 22 Results Implementation (2 separate programs) –A program integrated into MVSIS that derives SPFD graphs and sub-graph constraints for a given output on a network and outputs them to 2 output files –Another program that reads in the SPFD graph and constraints and performs the partitioning to get results using the techniques previously described

Applying Edge Partitioning to SPFD's 23 Results (output numbers) Due to Memory required by large graphs only trivial examples have been presented here Graphs with >3000 nodes can’t be generated due to O(n 2 ) space requirements where n is the number of vertices. Bottom 2 examples should be executed before the week is up Ord 0 - no ordering Ord 1 – vertex ordering Ord 2 – edge-color ordering

Applying Edge Partitioning to SPFD's 24 Conclusions This is a good proof of concept Does edge ordering matter? This code uses way too much memory –can only handle small examples –has some memory leaks –Is edge level partitioning too fine a grain? Needs to be compared with other SPFD techniques Probably map-able to other problems

Applying Edge Partitioning to SPFD's 25 Future Work Optimization of current code to handle larger examples Consideration of global SPFD’s + global topology Benchmark vs. current SPFD code Explore more heuristics Get a better idea of runtimes/memory usage