Concurrent Depth-First Search Algorithms

Slides:



Advertisements
Similar presentations
Model Checking Lecture 3. Specification Automata Syntax, given a set A of atomic observations: Sfinite set of states S 0 Sset of initial states S S transition.
Advertisements

Automatic Verification Book: Chapter 6. How can we check the model? The model is a graph. The specification should refer the the graph representation.
CS 267: Automated Verification Lecture 2: Linear vs. Branching time. Temporal Logics: CTL, CTL*. CTL model checking algorithm. Counter-example generation.
CS 267: Automated Verification Lecture 8: Automata Theoretic Model Checking Instructor: Tevfik Bultan.
Automatic Verification Book: Chapter 6. What is verification? Traditionally, verification means proof of correctness automatic: model checking deductive:
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT Optimizing Compilers CISC 673 Spring 2011 More Control Flow John Cavazos University.
CS 267: Automated Verification Lecture 10: Nested Depth First Search, Counter- Example Generation Revisited, Bit-State Hashing, On-The-Fly Model Checking.
Edited by Malak Abdullah Jordan University of Science and Technology Data Structures Using C++ 2E Chapter 12 Graphs.
1 CS 201 Compiler Construction Lecture 2 Control Flow Analysis.
C++ Programming: Program Design Including Data Structures, Third Edition Chapter 21: Graphs.
1 Formal Methods in SE Qaisar Javaid Assistant Professor Lecture # 11.
CSE 555 Protocol Engineering Dr. Mohammed H. Sqalli Computer Engineering Department King Fahd University of Petroleum & Minerals Credits: Dr. Abdul Waheed.
Discrete Abstractions of Hybrid Systems Rajeev Alur, Thomas A. Henzinger, Gerardo Lafferriere and George J. Pappas.
1 CS 201 Compiler Construction Lecture 2 Control Flow Analysis.
PSUCS322 HM 1 Languages and Compiler Design II Strongly Connected Components Herbert G. Mayer PSU Spring 2010 rev.: 5/28/2010.
Temporal Logic and Model Checking. Reactive Systems We often classify systems into two types: Transformational: functions from inputs available at the.
Witness and Counterexample Li Tan Oct. 15, 2002.
1 CSE 417: Algorithms and Computational Complexity Winter 2001 Lecture 10 Instructor: Paul Beame.
Graphs & Graph Algorithms Nelson Padua-Perez Bill Pugh Department of Computer Science University of Maryland, College Park.
Witness and Counterexample Li Tan Oct. 15, 2002.
The Model Checker SPIN Written by Gerard J. Holzmann Presented by Chris Jensen.
Important Problem Types and Fundamental Data Structures
Cheng/Dillon-Software Engineering: Formal Methods Model Checking.
Model Checking Lecture 3 Tom Henzinger. Model-Checking Problem I |= S System modelSystem property.
ECE 103 Engineering Programming Chapter 61 Abstract Data Types Herbert G. Mayer, PSU CS Status 6/4/2014 Initial content copied verbatim from ECE 103 material.
Yang Liu, Jun Sun and Jin Song Dong School of Computing National University of Singapore.
PAT: Getting started.
Lecture 5 1 CSP tools for verification of Sec Prot Overview of the lecture The Casper interface Refinement checking and FDR Model checking Theorem proving.
Graph Theory By: Maciej Kicinski Chiu Ming Luk. Extract Triple words.
COSC 2007 Data Structures II
CS 614: Theory and Construction of Compilers Lecture 15 Fall 2003 Department of Computer Science University of Alabama Joel Jones.
David Stotts Computer Science Department UNC Chapel Hill.
1 CPSC 320: Intermediate Algorithm Design and Analysis July 14, 2014.
Honors Track: Competitive Programming & Problem Solving 2-Satisfiability José Kuiper.
15-820A 1 LTL Model Checking A Flavio Lerda.
Graph Search Applications, Minimum Spanning Tree
Breadth-First Search (BFS)
Mehdi Kargar Department of Computer Science and Engineering
Analysis Classes Unit 5.
CS 201 Compiler Construction
Source Code for Data Structures and Algorithm Analysis in C (Second Edition) – by Weiss
Graph Searching.
Automatic Verification
Data Structures and Algorithms in Parallel Computing
Graph Algorithms Using Depth First Search
CS 201 Compiler Construction
Graph Search Applications
Graphs Chapter 13.
Query Processing B.Ramamurthy Chapter 12 11/27/2018 B.Ramamurthy.
Optimizing Compilers CISC 673 Spring 2009 More Control Flow
SS 2017 Software Verification Tableaus, CTL model checking
Maximum Flows of Minimum Cost
Graphs.
Abstraction.
Strongly Connected Components
Richard Anderson Winter 2009 Lecture 6
Data Structures & Algorithms Digraphs and DAGs
Jiří Vyskočil, Radek Mařík 2013
Minimum spanning trees
Graphs.
Graphs.
Graphs.
Important Problem Types and Fundamental Data Structures
3.2 Graph Traversal.
Model Checking CS 680 Formal Methods Jeremy Johnson.
Graphs.
Richard Anderson Lecture 5 Graph Theory
Graph Traversals Some applications require visiting every vertex in the graph exactly once. The application may require that vertices be visited in some.
Presentation transcript:

Concurrent Depth-First Search Algorithms Mohamad Alsabbagh Department of Electrical Engineering and Computer Science York University, Toronto October 8, 2015

Problems Tarjan’s algorithms solve Tarjan's Algorithms solve three related problems relevant to model checking. Given a state graph; Find its Strongly Connected Components (SCCs) Identify which nodes are in a loop Locate which nodes are in a lasso (FDR3). FDR checks refinement for formal models expressed in CSP (communicating sequential processes). CSP is a formal language to define concurrent systems and their interaction between each other by communication. Finding loops has applications in linear temporal logic (LTL) model checking

Why are these problems important? Lassos: FDR or failure-divergence refinement. SCCs: useful for performing compression on the transition graphs. Loops: important in linear temporal logic (LTL) model checking. (FDR3). FDR checks refinement for formal models expressed in CSP (communicating sequential processes). CSP is a formal language to define concurrent systems and their interaction between each other by communication.

Strongly Connected Components A directed subgraph that satisfy Strongly Connected attribute.

Loops & Lassos Loop: a node is part of a direct cycle Lasso: a path from a node to a node on a cycle

Sequential Tarjan's Algorithm Depth-First Search to identify SCCs.

Concurrent Tarjan's Algorithm A single concurrent version of Tarjan’s algorithm to identify SCCs

Tarjan's Node Structure Each node in the graph G has the following attributes: index (sequential and concurrent): which is a sequence counter, corresponding to the order in which nodes were encountered lowlink (sequential and concurrent): which records the smallest index of a node n′ in the stack that is reachable via the descendents of n fully considered so far search (concurrent): identifying which search a node belongs to

Circular Dependency

Circular Dependency Node Transfer

Circular Dependency Node Transfer When transferring a node from s1 to s3 we will need to recalculate its index amd lowlink values: δ1 = (s3.index − l1.index) we add δ1 onto the index and lowlink of each node transferred from s1 and update.

Next Steps Plan: implement all three algorithms compare their performance

Q&A Thanks