EDA045F: Program Analysis LECTURE 3: DATAFLOW ANALYSIS 2. Christoph Reichenbach
|
|
- Russell Nicholson
- 5 years ago
- Views:
Transcription
1 EDA045F: Program Analysis LECTURE 3: DATAFLOW ANALYSIS 2 Christoph Reichenbach
2 In the last lecture... Eliminating Nested Expressions (Three-Address Code) Control-Flow Graphs Static Single Assignment Form Basic Dataflow Analysis transb (x) mergeb (x, y) Reaching Definitions Analysis Live Variables Analysis 2 / 64
3 Dataflow Analysis Analyse properties of variables or basic blocks Examples in practice: Live Variables Is this variable ever read? Reaching Definitions What are the possible values for this variable? Available Expressions What variable definitely has which expression? 3 / 64
4 Analyses on Powersets (1/2) = {1} {2} {3} {1, 2} {1, 3} {2, 3} merge b = {1, 2, 3} = Common: Which elements of S are possible / necessary? S Z (Reaching Definitions) S = Numeric Constants in code {0, 1} S = Variables (Live Variables) S = Program Locations (alt. Reaching Definitions) S = Types Abstract Domain: Powerset P(S) Finite iff S is finite 4 / 64
5 Analyses on Powersets (2/2) = {1, 2, 3} = {1} {2} {3} {1, 2} {1, 3} {2, 3} {1, 2} {1, 3} {2, 3} {1} {2} {3} {1, 2, 3} = merge b = mergeb can be or : Property that is true over any path May-analysis (e.g., Reaching Definitions) : Property that is true over all paths = merge b = Must-analysis 5 / 64
6 Gen-Sets and Kill-Sets Many transfer functions transb have the following form: Remove set of options killx,b from each variable x Add set of options genx,b to each variable x Don t depend on other variables trans b ({x A,...}) = {x (A \ kill x,b ) gen x,b,...} Highly efficient implementation with bit-vectors possible Examples: Reaching Definitions on finite domain gen: assignments in current basic block kill: everything else if variable is assigned Live Variables gen: used variables kill: overwritten variables 6 / 64
7 Gen/Kill: Available Expressions Which expressions do we currently have evaluated and stored? C int x = 3 + z; int y = 2 + z; if (z > 0) { x = 4; } f(2 + z); // Can re-use y here! Forward analysis gen: any expression assigned to the variable kill: any other expression mergeb = 7 / 64
8 Gen/Kill: Very Busy Expressions Which expression do we definitely need to evaluate at least once? C // (x / 42) is very busy: (A),(B) if (z > 0) { x = 4 + x / 42; // (A) y = 1; } else { x = x / 42; // (B) } g(x); Backwards analysis gen: any expression assigned to the variable kill: any other expression mergeb = 8 / 64
9 Summary Common: Abstract Domain is powerset of some set S Transfer function transb : trans b ({x A,...}) = {x (A \ kill x,b ) gen x,b,...} kill: Kill set : Entries of S to remove gen: Gen set : Entries of S to add mergeb is or Often admits very efficient implementation May Must Forward Reaching Definitions Available Expressions Backward Live Variables Very Busy Expressions 9 / 64
10 Lattices: Models for Information Program analyses model information Undecidability = must approximate Conservative: over-approximate (contradictory information) Optimistic: under-approximate (incomplete information) Commonly used formal model: lattices 10 / 64
11 Partial Ordering Lattices L are based on a partially ordered set L, : Set: L describes possible information ( ) L L: Intuition for a b (for program analysis): a has at least as much information as b ( ) is a partial order: Example: a a a b and b a = a = b a b and b c = a c L = {unknown, true, false, true-or-false} true-or-false true unknown Reflexivity Antisymmetry Transitivity true-or-false false unknown 12 / 64
12 Greatest Lower bound a c b d Combining potentially contradictory information: Meet operator: ( ) : L L L a b a and a b b Greatest element with this property: for all d : d a and d b = d a b computes Greatest Lower Bound (Infimum) 13 / 64
13 Least Upper Bound d a c b Converse operation: Join operator: ( ) : L L L a a b and b a b Least element with this property: for all d : a d and a d = d a b computes Least Upper Bound (Supremum) 14 / 64
14 Lattices L = L,,, L: Underlying set ( ) L L: Partial Order ( ) : L L L: Meet (computes g.l.b.) ( ) : L L L: Join (computes l.u.b.) Join/Meet always exist and are unique It can be shown that ( ), ( ) are: Commutative: Associative: (Analogous for ) a b = b a a (b c) = (a b) c 15 / 64
15 Complete Lattices A lattice L = L,,, is complete iff: For any L L there exist: L (least upper bound for arbitrary set) L (greatest lower bound for arbitrary set) We define a for all a L as: = L We define a for all a L as: = L 16 / 64
16 Complete Lattices: Visually a n = a b = c a b n a b = d a n = 17 / 64
17 Example: Binary Lattice true = true = false = logical or false = logical and 18 / 64
18 Example: Booleans true false = true-and-false = true-or-false a b: must be both a and b a b: could be either a or b If B = {true, false}: Lattice sometimes called B Other interpretations possible 19 / 64
19 Example: Flat Lattice on Integers Sometimes written Z = = Z { a iff a = b a b = otherwise { a iff a = b a b = otherwise Analogous for other X from set X 20 / 64
20 Example: Type Hierarchy Lattices java.lang.object= Number Comparable OutputStream Integer Byte String Type systems with subtyping form (non-powerset) lattice Must add element Some langugaes (C++) need extra element For extra precision, we may add nodes for e.g. java.lang.comparable java.lang.serializable 21 / 64
21 Example: Powersets Take any set S = {a, b, c} {a} {b} {c} {a, b} {a, c} {b, c} L = P(S) = = S ( ) = ( ) ( ) = ( ) 22 / 64
22 Example: Lattices and Non-Lattices {a,b,c} PQ 1 {a,b} {b,c} P Q 0 {a} {b} {c} R S Lattice Lattice Not A Lattice Z Right-hand side is missing e.g. a unique R S 23 / 64
23 Example: Natural numbers with 0, ω ω 3 2 = ω = 0 a b = maximum of a and b a b = minimum of a and b / 64
24 Dual Lattices Let L = L,,, be a lattice. Then: L = L,,, is also a lattice L is dual lattice to L If L is complete, with L, L being top, bottom: L is also complete, and: L = L L = L Lattices can be flipped around without losing their properties 25 / 64
25 Product Lattices Program analysis: Each variable needs its own lattice Can we combine these lattices to analyse variables simultaneously? Assume (complete) lattices: L1 = L 1, 1, 1, 1, 1, 1 L2 = L 2, 2, 2, 2, 2, 2 Let L1 L 2 = L 1 L 2,,,,, where: a, b a, b iff a 1 a and b 2 b a, b a, b = a 1 a, b 2 b a, b a, b = a 1 a, b 2 b = 1, 2 = 1, 2 Point-wise products of (complete) lattices are again (complete) lattices 26 / 64
26 Product Lattices over Binary Lattices Recall binary lattices: = true = false true true true = logical or = logical and Computer hardware can compute, of multiple false false false lattices in parallel: Bitwise or/and = Highly efficient Can represent other lattices efficiently, too Give rise to highly efficient Gen-/Kill-Set based program analysis 27 / 64
27 Omitted Formal Details What we didn t cover: Partially Ordered Sets (Posets) Semi-lattices (lacking meet or join) Lattice absorption laws Many interesting lattice properties Not a full introduction to lattice theory 28 / 64
28 Word of Caution Definition in the book flips lattices and mean the opposite We use the more common definition from the research literature Definition is isomorphic, but can be confusing / 64
29 Summary Complete lattices are formal basis for many program analyses Complete lattice L = L,,,,, L: Carrier set ( ): Partial order ( ): Meet operation: find greatest lower bound (Analysis: merge b ) ( ): Join operation: find least upper bound (Analysis: uncommon, but can improve precision of two conservative results) : Top-most element of complete lattice (Analysis: I don t know ) : Bottom-most element of complete lattice (Analysis: I know that I can t know ) Lattices can be flipped Lattices can be combined into product lattices 30 / 64
30 Monotone Frameworks A Z L = L,,, is complete lattice Order: : No information (yet) : Too much information / could be anything mergeb (x, y) = x y for all b transb monotonic: x y = trans b (x) trans b (y) Finite lattice height ( Descending Chain Condition): x 0 x 1 x 2 x 3... = exists k s.th. for all k > k, x k = x k L can be infinite only the lattice height must be finite 31 / 64
31 Putting It All Together Monotone Frameworks ensure termination of Data Flow Analysis Information from complete Lattice L: : No information (yet) : Too much information / could be anything Must satisfy Descending Chain Condition: no infinite progress Ensure that no analysis step loses knowledge: Each basic block has transfer function transb Output knowledge out b from input knowledge in b Monotonic: increasing input knowledge does not decrease output knowledge Merging multiple inputs with mergeb = is lattice meet (greatest lower bound) 32 / 64
32 Fixpoints Algorithm sketch from last week: Repeat transb and merge b until value no longer moves Fixpoint Multiple possible solutions, ordered by Maximal Fixpoint Highest Precision 33 / 64
33 Value Range Analysis Find value range (interval of possible values) for x Python x = 1 while...: if...: x = 4 else: x = 7 Multiple possible sound solutions: [1, 7] [1, 10] [ 99, 99] All of these values are fixpoints [1, 7] is maximum fispoint 34 / 64
34 An Algorithm for MFP Last week: sketched naive algorithm for computing fixpoint Produces maximum fixpoint (MFP) Optimise processing with worklist Set-like datastructure: add element (if not already present) contains check: is element present? pop element: remove and return one element Tracks what s left to be done 35 / 64
35 The MFP Algorithm Procedure MFP(, merge,, CFG, trans, is-backward): begin if is-backward then reverse edges(cfg); worklist := edges(cfg); -- edges that we need to look at foreach n nodes(cfg) do analysis[n] = ; -- state of the analysis done while not empty(worklist) do n, n := pop(worklist); if analysis[n ] trans n (analysis[n]) then begin analysis[n ] := merge n (analysis[n ], trans n (analysis[n])); foreach n successor-nodes(cfg, n ) do push(worklist, n, n ); done end done return analysis; end Worklist allows focussing effort! 36 / 64
36 Summary: MFP Algorithm Compute data flow analysis: Initialise all nodes with Repeat until nothing changes any more: Apply transfer function Propagate changes along control flow graph Apply Compute maximal fixpoint Use worklist to increase efficiency Distinction: Forward/Backward analyses 37 / 64
37 Another Dataflow Example Consider again Reaching Definitions: Lattice: : Unknown : Too much/contradictory information Integer: exactly that one assignment is possible 38 / 64
38 Optimal Dataflow Results x = 3 y = 1 z = true b 0 if (...) b 1 x = 3 b 2 y = 1 b 3 out b1 out b2 = x = y = z = z = x + y x = y = z = false x = 1 y = 3 x = 1 y = 3 z = x = y = z = Imprecise! Can we do better? 39 / 64
39 Execution paths b 0 if (...) b 1 x = 3 b 2 y = 1 x = 1 y = 3 b 3 z = x + y Idea: Let s consider all paths through the program: path b0 = {[]} path b1 = {[b 0 ]} path b2 = {[b 0 ]} path b3 = {[b 0, b 1 ], [b 0, b 2 ]} 40 / 64
40 The MOP algorithm for Dataflow Analysis Compute the MOP ( meet-over-all-paths ) solution: Iterate over all paths [p0,..., p k ] in path bi Compute precise result for that path Merge ( ) with all other precise results out bi = trans bi trans pk trans p0 ( ) [p 0,...,p k ] path bi Notation: (function composition) (f g)(x) = f (g(x)) 41 / 64
41 MOP vs MFP: Example b 0 if (...) b 1 x = 3 b 2 y = 1 x = 1 y = 3 b 3 z = x + y Transfer functions Paths trans b0 = id trans b1 = [x 3][y 1] trans b2 = [x 1][y 3] trans b3 = [z x + y] path b0 = {[]} path b1 = {[b 0 ]} path b2 = {[b 0 ]} path b3 = {[b 0, b 1 ], [b 0, b 2 ]} out b3 = ([z x + y][x 3][y 1]( )) ([z x + y][x 1][y 3]( )) = {z 3 + 1, x 3, y 1} {z 1 + 3, x 1, y 3} = {z 4, x, y } 42 / 64
42 MOP vs MFP MOP MFP Soundness sound sound Precision maximal sometimes lower Decidability undecidable decidable MOP: Meet Over all Paths MFP: Maximal Fixed Point 43 / 64
43 Summary pathb : Set of all paths from program start to b MOP: alternative to MFP (theoretically) Termination not guaranteed May be more precise Idea: Enumerate all paths to basic block Compute transfer functions over paths individually Meet 44 / 64
44 MFP revisited Consider Reaching Definitions again, with different lattice: x = 0 y = 0 z = 1 l 0 l 1 l 2 = {l 0 } {l 1 } {l 2 } {l 3 } {l 4 } x = x + 1 l 3 {l 0, l 1 } {l 3, l 4 } = {l 0, l 1, l 2, l 3, l 4 } y = 7 l 4 z = y All subsets of {l0,..., l 4 } Finite height return x, y, z = 45 / 64
45 MFP revisited: Transfer Functions b 0 x = 0 y = 0 z = 1 b 1 l 0 l 1 l 2 x = x + 1 l 3 b 2 b 3 y = 7 z = y l 4 trans b0 =[ x {l 0 }, y {l 1 }, z {l 2 }] trans b1 =[x {l 3 }] trans b2 =[y {l 4 }] trans b3 =[z y] b 4 return x, y, z 46 / 64
46 MOP vs MFP revisited Solutions for b 4 : MOP solution x {l 0, l 3 } y {l 1, l 4 } z {l 1, l 2, l 4 } MFP solution x {l 0, l 3 } y {l 1, l 4 } z {l 1, l 2, l 4 } Repeat with other programs: MOP solution always the same as MFP solution Not true for other lattices/transfer functions / 64
47 Distributive Frameworks A Monotone Framework is: Lattice L = L,,, L has finite height (Descending Chain Condition) All transb are monotonic Guarantees that MFP conservatively approximates MOP A Distributive Framework is: A Monotone Framework, where additionally: transb distributes over : trans b (x y) = trans b (x) trans b (y) for all programs and all x, y, b Guarantees that MFP is equal to MOP 48 / 64
48 Distributive Problems Monotonic: trans b (x y) trans b (x) trans b (y) Distributive: trans b (x y) = trans b (x) trans b (y) Many analyses can fit distributive framework Known counter-example: transfer functions on Z : [z x + y] Generally: transfer function that depends on two independent inputs and may produce same output for different inputs 49 / 64
49 A Hack to Improve Precision 1 (1/2) b 0 if (...) b 1 true x = 3 y = 1 b 2 false x = 1 y = 3 b 3 z = x + y Recall: Imprecision comes about because trans b3 (out b1 out b2 ) = trans b3 ({x 3, y 1,...} {x 1, y 3,...}) = trans b3 ({x, y,...}) = {z,...} Idea: Transfer first, then meet: trans b3 ({x 3, y 1,...}) trans b3 ({x 1, y 3,...}) = {z 4,...} {z 4,...} 50 / 64
50 A Hack to Improve Precision (2/2) b 0 if (...) b 1 true x = 3 y = 1 b 2 false x = 1 y = 3 b 3 a = 0 b 4 z = x + y in b4 = out b3 = trans b3 ({x 3, y 1,...}) trans b3 ({x 1, y 3,...}) = {x 3, y 1,...} {x 1, y 3,...} = {x, y,...} Only works if data is used right at point of the merge 51 / 64
51 Summary Distributive Frameworks are Monotone Frameworks with additional property: trans b (x y) = trans b (x) trans b (y) for all programs and all x, y, b In Distributive Frameworks, MOP and MFP produce same answer Gen/Kill-set based analyses are always distributive 52 / 64
52 Subroutine calls name ::= id id. id val ::= name num expr ::= val val + val null print val new() id ( val ) stmt ::= name = expr { stmt } if val stmt else stmt while val stmt skip return val decl ::= proc id ( id ) stmt global id = num prog ::= decl 53 / 64
53 Limitations of Intra-Procedural Analysis ATL a = 7 d = f(a, 2) e = a + d ATL proc f(x, y) { z = 0 if x > y { z = x } else { z = y } return z } How can we compute Reachable Definitions here? 54 / 64
54 A Naive Inter-Procedural Analysis b c 6 b 5 a = 7 d = f(a, 2) a {7} (return) b r 6 x {7} y {2} f(x, y) = z = 0 if... b 0 b 1 b 2 z = x z = y b 3 b 7 e = a + d d {2, 7} return z b 4 omitting obvious transfer functions in b r 6 = out b6 out b4 = out b r 6 outb7 : e {9, 14} Works rather straightforwardly! 55 / 64
55 Inter-Procedural Data Flow Analysis b c x e = f(1, 5) subroutine start ENTER b r x (return) EXIT subroutine end Split call sites bx into call (bx c ) and return (bx) r nodes Intra-procedural edge b c x bx r carries environment/store Inter-procedural edge ( ): Caller subroutine, substitutes parameters (for pass-by-value) Caller return, substitutes result (for pass-by-result) Otherwise as intra-procedural data flow edge 56 / 64
56 A Naive Inter-Procedural Analysis b c 6 b 5 a = 7 d = f(a, 2) x {7} y {2} x {1} y {5} f(x, y) = z = 0 if... b 0 b 1 x {1, 7} y {2, 5} (return) b r 6 b 2 z = x z = y b 3 b c 7 e = f(1, 5) d {1, 2, 5, 7} return z b 4 z {1, 2, 5, 7} (return) b r 7 e {1, 2, 5, 7} Imprecision! 57 / 64
57 Context Sensitivity: Valid Paths b c 6 b 5 a = 7 d = f(a, 2) z = 0 if... b 0 b 1 b c 7 b r 6 e = f(1, 5) b r 7 (return) (return) b 2 z = x z = y b 3 return z b 4 Not Not a valida valid path path either [b5, b c 6, b 0, b 1, b 3, b 4, b r 6] Context-sensitive analyses consider only valid paths 58 / 64
58 Summary Intraprocedural Data Flow Analysis is highly imprecise with subroutine calls Interprocedural Data Flow Analysis is more precise: Split call site into call site + return site Add flow edges between call sites, subroutine entry Add flow edges between subroutine return, return site Carry environment from call site to return site Interprocedural analysis must typically consider the entire program whole-program analysis Naive interprocedural analysis is context-insensitive Merge all callers into one 59 / 64
59 Interprocedural Data Flow Analysis b c 6 b 5 a = 7 d = f(a, 2) x {7} y {2} x {1} y {5} f(x, y) = z = 0 if... b 0 b 1 x {1, 7} y {2, 5} (return) b r 6 b 2 z = x z = y b 3 b c 7 e = f(1, 5) d {2, 7, 1, 5} return z b 4 z {1, 2, 5, 7} (return) b r 7 e {1, 5, 2, 7} Context-insensitive: analysis merges all callers to f() 60 / 64
60 Inlining a = 7 x {7} y {2} f(x, y) = z = 0 b c 6 b c 7 d = f(a, 2) (return) b r 6 e = f(1, 5) d {2, 7} z = x if... return z z = y (return) b r 7 x {1} y {5} z = 0 if... e {1, 5} z = x return z z = y Clone subroutine IRs for each calling context 61 / 64
61 Summary Context-sensitive analysis distinguishes calling context when analysing subroutine Who called me? Can go deeper: And who called them? Inlining is one strategy for context-sensitive analysis Copy subroutine bodies for each caller Advantages: Simple Improves precision Disadvantages: Difficult with recursion Slows down analysis 62 / 64
62 Review Gen/Kill analyses Lattices Monotone Frameworks MFP algorithm MOP algorithm Distributive Frameworks Interprocedural Analysis Inlining for analysis 63 / 64
63 To be continued... Next week: More on IFDS and its refinements Callgraph Analysis 64 / 64
Recall: Data Flow Analysis. Data Flow Analysis Recall: Data Flow Equations. Forward Data Flow, Again
Data Flow Analysis 15-745 3/24/09 Recall: Data Flow Analysis A framework for proving facts about program Reasons about lots of little facts Little or no interaction between facts Works best on properties
More informationLattice-Theoretic Framework for Data-Flow Analysis. Defining Available Expressions Analysis. Reality Check! Reaching Constants
Lattice-Theoretic Framework for Data-Flow Analysis Defining Available Expressions Analysis Last time Generalizing data-flow analysis Today Finish generalizing data-flow analysis Reaching Constants introduction
More informationLattices and the Knaster-Tarski Theorem
Lattices and the Knaster-Tarski Theorem Deepak D Souza Department of Computer Science and Automation Indian Institute of Science, Bangalore. 8 August 27 Outline 1 Why study lattices 2 Partial Orders 3
More informationPrinciples of Program Analysis: Algorithms
Principles of Program Analysis: Algorithms Transparencies based on Chapter 6 of the book: Flemming Nielson, Hanne Riis Nielson and Chris Hankin: Principles of Program Analysis. Springer Verlag 2005. c
More informationLecture Notes: Interprocedural Analysis
Lecture Notes: Interprocedural Analysis 15-819O: Program Analysis Jonathan Aldrich jonathan.aldrich@cs.cmu.edu Lecture 8 1 Interprocedural Analysis Interprocedural analysis concerns analyzing a program
More informationGenerating all modular lattices of a given size
Generating all modular lattices of a given size ADAM 2013 Nathan Lawless Chapman University June 6-8, 2013 Outline Introduction to Lattice Theory: Modular Lattices The Objective: Generating and Counting
More informationCTL Model Checking. Goal Method for proving M sat σ, where M is a Kripke structure and σ is a CTL formula. Approach Model checking!
CMSC 630 March 13, 2007 1 CTL Model Checking Goal Method for proving M sat σ, where M is a Kripke structure and σ is a CTL formula. Approach Model checking! Mathematically, M is a model of σ if s I = M
More informationThe illustrated zoo of order-preserving functions
The illustrated zoo of order-preserving functions David Wilding, February 2013 http://dpw.me/mathematics/ Posets (partially ordered sets) underlie much of mathematics, but we often don t give them a second
More informationÉcole normale supérieure, MPRI, M2 Year 2007/2008. Course 2-6 Abstract interpretation: application to verification and static analysis P.
École normale supérieure, MPRI, M2 Year 2007/2008 Course 2-6 Abstract interpretation: application to verification and static analysis P. Cousot Questions and answers of the partial exam of Friday November
More informationSemantics and Verification of Software
Semantics and Verification of Software Thomas Noll Software Modeling and Verification Group RWTH Aachen University http://moves.rwth-aachen.de/teaching/ws-1718/sv-sw/ Recap: CCPOs and Continuous Functions
More informationNode betweenness centrality: the definition.
Brandes algorithm These notes supplement the notes and slides for Task 11. They do not add any new material, but may be helpful in understanding the Brandes algorithm for calculating node betweenness centrality.
More informationResiduated Lattices of Size 12 extended version
Residuated Lattices of Size 12 extended version Radim Belohlavek 1,2, Vilem Vychodil 1,2 1 Dept. Computer Science, Palacky University, Olomouc 17. listopadu 12, Olomouc, CZ 771 46, Czech Republic 2 SUNY
More informationFilters - Part II. Quotient Lattices Modulo Filters and Direct Product of Two Lattices
FORMALIZED MATHEMATICS Vol2, No3, May August 1991 Université Catholique de Louvain Filters - Part II Quotient Lattices Modulo Filters and Direct Product of Two Lattices Grzegorz Bancerek Warsaw University
More informationCSE 21 Winter 2016 Homework 6 Due: Wednesday, May 11, 2016 at 11:59pm. Instructions
CSE 1 Winter 016 Homework 6 Due: Wednesday, May 11, 016 at 11:59pm Instructions Homework should be done in groups of one to three people. You are free to change group members at any time throughout the
More informationBinary Decision Diagrams
Binary Decision Diagrams Hao Zheng Department of Computer Science and Engineering University of South Florida Tampa, FL 33620 Email: zheng@cse.usf.edu Phone: (813)974-4757 Fax: (813)974-5456 Hao Zheng
More informationChair of Communications Theory, Prof. Dr.-Ing. E. Jorswieck. Übung 5: Supermodular Games
Chair of Communications Theory, Prof. Dr.-Ing. E. Jorswieck Übung 5: Supermodular Games Introduction Supermodular games are a class of non-cooperative games characterized by strategic complemetariteis
More informationBinary Decision Diagrams
Binary Decision Diagrams Hao Zheng Department of Computer Science and Engineering University of South Florida Tampa, FL 33620 Email: zheng@cse.usf.edu Phone: (813)974-4757 Fax: (813)974-5456 Hao Zheng
More informationMAT385 Final (Spring 2009): Boolean Algebras, FSM, and old stuff
MAT385 Final (Spring 2009): Boolean Algebras, FSM, and old stuff Name: Directions: Problems are equally weighted. Show your work! Answers without justification will likely result in few points. Your written
More informationCS 188: Artificial Intelligence
CS 188: Artificial Intelligence Markov Decision Processes Dan Klein, Pieter Abbeel University of California, Berkeley Non Deterministic Search Example: Grid World A maze like problem The agent lives in
More informationCS 188: Artificial Intelligence
CS 188: Artificial Intelligence Markov Decision Processes Dan Klein, Pieter Abbeel University of California, Berkeley Non-Deterministic Search 1 Example: Grid World A maze-like problem The agent lives
More informationSublinear Time Algorithms Oct 19, Lecture 1
0368.416701 Sublinear Time Algorithms Oct 19, 2009 Lecturer: Ronitt Rubinfeld Lecture 1 Scribe: Daniel Shahaf 1 Sublinear-time algorithms: motivation Twenty years ago, there was practically no investigation
More informationSo we turn now to many-to-one matching with money, which is generally seen as a model of firms hiring workers
Econ 805 Advanced Micro Theory I Dan Quint Fall 2009 Lecture 20 November 13 2008 So far, we ve considered matching markets in settings where there is no money you can t necessarily pay someone to marry
More informationReinforcement Learning. Slides based on those used in Berkeley's AI class taught by Dan Klein
Reinforcement Learning Slides based on those used in Berkeley's AI class taught by Dan Klein Reinforcement Learning Basic idea: Receive feedback in the form of rewards Agent s utility is defined by the
More informationFibonacci Heaps Y Y o o u u c c an an s s u u b b m miitt P P ro ro b blle e m m S S et et 3 3 iin n t t h h e e b b o o x x u u p p fro fro n n tt..
Fibonacci Heaps You You can can submit submit Problem Problem Set Set 3 in in the the box box up up front. front. Outline for Today Review from Last Time Quick refresher on binomial heaps and lazy binomial
More informationAnother Variant of 3sat. 3sat. 3sat Is NP-Complete. The Proof (concluded)
3sat k-sat, where k Z +, is the special case of sat. The formula is in CNF and all clauses have exactly k literals (repetition of literals is allowed). For example, (x 1 x 2 x 3 ) (x 1 x 1 x 2 ) (x 1 x
More informationLecture Notes on Bidirectional Type Checking
Lecture Notes on Bidirectional Type Checking 15-312: Foundations of Programming Languages Frank Pfenning Lecture 17 October 21, 2004 At the beginning of this class we were quite careful to guarantee that
More informationLecture Notes on Type Checking
Lecture Notes on Type Checking 15-312: Foundations of Programming Languages Frank Pfenning Lecture 17 October 23, 2003 At the beginning of this class we were quite careful to guarantee that every well-typed
More informationSingle-Parameter Mechanisms
Algorithmic Game Theory, Summer 25 Single-Parameter Mechanisms Lecture 9 (6 pages) Instructor: Xiaohui Bei In the previous lecture, we learned basic concepts about mechanism design. The goal in this area
More informationEfficiency, Precision, Simplicity, and Generality in Interprocedural Data Flow Analysis:
Efficiency, Precision, Simplicity, and Generality in Interprocedural Data Flow Analysis: Resurrecting the Classical Call Strings Method Uday P. Khedker and Bageshri Karkare Indian Institute of Technology,
More informationCSCE 750, Fall 2009 Quizzes with Answers
CSCE 750, Fall 009 Quizzes with Answers Stephen A. Fenner September 4, 011 1. Give an exact closed form for Simplify your answer as much as possible. k 3 k+1. We reduce the expression to a form we ve already
More informationLattice Model of Flow
Lattice Model of Flow CS4605 George W. Dinolt Taken From Denning s A Lattice Model of Secure Information Flow, Communications of the ACM, Vol 19, #5, May, 1976 The Plan The Elements of the Model The Flow
More informationLecture 14: Basic Fixpoint Theorems (cont.)
Lecture 14: Basic Fixpoint Theorems (cont) Predicate Transformers Monotonicity and Continuity Existence of Fixpoints Computing Fixpoints Fixpoint Characterization of CTL Operators 1 2 E M Clarke and E
More informationRational Behaviour and Strategy Construction in Infinite Multiplayer Games
Rational Behaviour and Strategy Construction in Infinite Multiplayer Games Michael Ummels ummels@logic.rwth-aachen.de FSTTCS 2006 Michael Ummels Rational Behaviour and Strategy Construction 1 / 15 Infinite
More informationTHE NUMBER OF UNARY CLONES CONTAINING THE PERMUTATIONS ON AN INFINITE SET
THE NUMBER OF UNARY CLONES CONTAINING THE PERMUTATIONS ON AN INFINITE SET MICHAEL PINSKER Abstract. We calculate the number of unary clones (submonoids of the full transformation monoid) containing the
More informationAn orderly algorithm to enumerate finite (semi)modular lattices
An orderly algorithm to enumerate finite (semi)modular lattices BLAST 23 Chapman University October 6, 23 Outline The original algorithm: Generating all finite lattices Generating modular and semimodular
More informationOutline for this Week
Binomial Heaps Outline for this Week Binomial Heaps (Today) A simple, flexible, and versatile priority queue. Lazy Binomial Heaps (Today) A powerful building block for designing advanced data structures.
More informationMaximum Contiguous Subsequences
Chapter 8 Maximum Contiguous Subsequences In this chapter, we consider a well-know problem and apply the algorithm-design techniques that we have learned thus far to this problem. While applying these
More informationCATEGORICAL SKEW LATTICES
CATEGORICAL SKEW LATTICES MICHAEL KINYON AND JONATHAN LEECH Abstract. Categorical skew lattices are a variety of skew lattices on which the natural partial order is especially well behaved. While most
More informationOpinion formation CS 224W. Cascades, Easley & Kleinberg Ch 19 1
Opinion formation CS 224W Cascades, Easley & Kleinberg Ch 19 1 How Do We Model Diffusion? Decision based models (today!): Models of product adoption, decision making A node observes decisions of its neighbors
More informationWhile the story has been different in each case, fundamentally, we ve maintained:
Econ 805 Advanced Micro Theory I Dan Quint Fall 2009 Lecture 22 November 20 2008 What the Hatfield and Milgrom paper really served to emphasize: everything we ve done so far in matching has really, fundamentally,
More informationOutline for this Week
Binomial Heaps Outline for this Week Binomial Heaps (Today) A simple, fexible, and versatile priority queue. Lazy Binomial Heaps (Today) A powerful building block for designing advanced data structures.
More informationCS 4110 Programming Languages & Logics. Lecture 2 Introduction to Semantics
CS 4110 Programming Languages & Logics Lecture 2 Introduction to Semantics 29 August 2012 Announcements 2 Wednesday Lecture Moved to Thurston 203 Foster Office Hours Today 11a-12pm in Gates 432 Mota Office
More informationMathematics Notes for Class 12 chapter 1. Relations and Functions
1 P a g e Mathematics Notes for Class 12 chapter 1. Relations and Functions Relation If A and B are two non-empty sets, then a relation R from A to B is a subset of A x B. If R A x B and (a, b) R, then
More informationComputational Intelligence Winter Term 2009/10
Computational Intelligence Winter Term 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering (LS 11) Fakultät für Informatik TU Dortmund Plan for Today Fuzzy Sets Basic Definitionsand ResultsforStandard
More informationStochastic Dual Dynamic Programming
1 / 43 Stochastic Dual Dynamic Programming Operations Research Anthony Papavasiliou 2 / 43 Contents [ 10.4 of BL], [Pereira, 1991] 1 Recalling the Nested L-Shaped Decomposition 2 Drawbacks of Nested Decomposition
More informationGame Theory Fall 2003
Game Theory Fall 2003 Problem Set 5 [1] Consider an infinitely repeated game with a finite number of actions for each player and a common discount factor δ. Prove that if δ is close enough to zero then
More informationSelective Context-Sensitivity Guided by Impact Pre-Analysis
Selective Context-Sensitivity Guided by Impact Pre-Analysis Hakjoo Oh 1 Wonchan Lee 1 Kihong Heo 1 Hongseok Yang 2 Kwangkeun Yi 1 Seoul National University 1, University of Oxford 2 Abstract We present
More informationYao s Minimax Principle
Complexity of algorithms The complexity of an algorithm is usually measured with respect to the size of the input, where size may for example refer to the length of a binary word describing the input,
More informationWhite-Box Testing Techniques I
White-Box Testing Techniques I Software Testing and Verification Lecture 7 Prepared by Stephen M. Thebaut, Ph.D. University of Florida Definition of White-Box Testing Testing based on analysis of internal
More informationInformation Theory and Coding Prof. S. N. Merchant Department of Electrical Engineering Indian Institute of Technology, Bombay
Information Theory and Coding Prof. S. N. Merchant Department of Electrical Engineering Indian Institute of Technology, Bombay Lecture - 15 Adaptive Huffman Coding Part I Huffman code are optimal for a
More informationCS221 / Spring 2018 / Sadigh. Lecture 9: Games I
CS221 / Spring 2018 / Sadigh Lecture 9: Games I Course plan Search problems Markov decision processes Adversarial games Constraint satisfaction problems Bayesian networks Reflex States Variables Logic
More informationCSEP 573: Artificial Intelligence
CSEP 573: Artificial Intelligence Markov Decision Processes (MDP)! Ali Farhadi Many slides over the course adapted from Luke Zettlemoyer, Dan Klein, Pieter Abbeel, Stuart Russell or Andrew Moore 1 Outline
More informationPrinciples of Program Analysis: Abstract Interpretation
Principles of Program Analysis: Abstract Interpretation Transparencies based on Chapter 4 of the book: Flemming Nielson, Hanne Riis Nielson and Chris Hankin: Principles of Program Analysis. Springer Verlag
More informationMAT 4250: Lecture 1 Eric Chung
1 MAT 4250: Lecture 1 Eric Chung 2Chapter 1: Impartial Combinatorial Games 3 Combinatorial games Combinatorial games are two-person games with perfect information and no chance moves, and with a win-or-lose
More informationECON 459 Game Theory. Lecture Notes Auctions. Luca Anderlini Spring 2017
ECON 459 Game Theory Lecture Notes Auctions Luca Anderlini Spring 2017 These notes have been used and commented on before. If you can still spot any errors or have any suggestions for improvement, please
More information16 MAKING SIMPLE DECISIONS
247 16 MAKING SIMPLE DECISIONS Let us associate each state S with a numeric utility U(S), which expresses the desirability of the state A nondeterministic action A will have possible outcome states Result
More informationAlgebra homework 8 Homomorphisms, isomorphisms
MATH-UA.343.005 T.A. Louis Guigo Algebra homework 8 Homomorphisms, isomorphisms For every n 1 we denote by S n the n-th symmetric group. Exercise 1. Consider the following permutations: ( ) ( 1 2 3 4 5
More informationGenerating all nite modular lattices of a given size
Generating all nite modular lattices of a given size Peter Jipsen and Nathan Lawless Dedicated to Brian Davey on the occasion of his 65th birthday Abstract. Modular lattices, introduced by R. Dedekind,
More informationReinforcement Learning
Reinforcement Learning Basic idea: Receive feedback in the form of rewards Agent s utility is defined by the reward function Must (learn to) act so as to maximize expected rewards Grid World The agent
More informationA CATEGORICAL FOUNDATION FOR STRUCTURED REVERSIBLE FLOWCHART LANGUAGES: SOUNDNESS AND ADEQUACY
Logical Methods in Computer Science Vol. 14(3:16)2018, pp. 1 38 https://lmcs.episciences.org/ Submitted Oct. 12, 2017 Published Sep. 05, 2018 A CATEGORICAL FOUNDATION FOR STRUCTURED REVERSIBLE FLOWCHART
More informationIntroduction to Fall 2007 Artificial Intelligence Final Exam
NAME: SID#: Login: Sec: 1 CS 188 Introduction to Fall 2007 Artificial Intelligence Final Exam You have 180 minutes. The exam is closed book, closed notes except a two-page crib sheet, basic calculators
More informationSMT and POR beat Counter Abstraction
SMT and POR beat Counter Abstraction Parameterized Model Checking of Threshold-Based Distributed Algorithms Igor Konnov Helmut Veith Josef Widder Alpine Verification Meeting May 4-6, 2015 Igor Konnov 2/64
More informationChapter 3. Dynamic discrete games and auctions: an introduction
Chapter 3. Dynamic discrete games and auctions: an introduction Joan Llull Structural Micro. IDEA PhD Program I. Dynamic Discrete Games with Imperfect Information A. Motivating example: firm entry and
More informationLecture 4: Divide and Conquer
Lecture 4: Divide and Conquer Divide and Conquer Merge sort is an example of a divide-and-conquer algorithm Recall the three steps (at each level to solve a divideand-conquer problem recursively Divide
More informationCSE 473: Artificial Intelligence
CSE 473: Artificial Intelligence Markov Decision Processes (MDPs) Luke Zettlemoyer Many slides over the course adapted from Dan Klein, Stuart Russell or Andrew Moore 1 Announcements PS2 online now Due
More informationDevelopmental Math An Open Program Unit 12 Factoring First Edition
Developmental Math An Open Program Unit 12 Factoring First Edition Lesson 1 Introduction to Factoring TOPICS 12.1.1 Greatest Common Factor 1 Find the greatest common factor (GCF) of monomials. 2 Factor
More informationTABLEAU-BASED DECISION PROCEDURES FOR HYBRID LOGIC
TABLEAU-BASED DECISION PROCEDURES FOR HYBRID LOGIC THOMAS BOLANDER AND TORBEN BRAÜNER Abstract. Hybrid logics are a principled generalization of both modal logics and description logics. It is well-known
More informationDynamic Programming: An overview. 1 Preliminaries: The basic principle underlying dynamic programming
Dynamic Programming: An overview These notes summarize some key properties of the Dynamic Programming principle to optimize a function or cost that depends on an interval or stages. This plays a key role
More information91.420/543: Artificial Intelligence UMass Lowell CS Fall 2010
91.420/543: Artificial Intelligence UMass Lowell CS Fall 2010 Lecture 17 & 18: Markov Decision Processes Oct 12 13, 2010 A subset of Lecture 9 slides from Dan Klein UC Berkeley Many slides over the course
More informationWhite-Box Testing Techniques I
White-Box Testing Techniques I Software Testing and Verification Lecture 7 Prepared by Stephen M. Thebaut, Ph.D. University of Florida Definition of White-Box Testing Testing based on analysis of internal
More informationLecture 2: Making Good Sequences of Decisions Given a Model of World. CS234: RL Emma Brunskill Winter 2018
Lecture 2: Making Good Sequences of Decisions Given a Model of World CS234: RL Emma Brunskill Winter 218 Human in the loop exoskeleton work from Steve Collins lab Class Structure Last Time: Introduction
More informationAlgorithmic Game Theory and Applications. Lecture 11: Games of Perfect Information
Algorithmic Game Theory and Applications Lecture 11: Games of Perfect Information Kousha Etessami finite games of perfect information Recall, a perfect information (PI) game has only 1 node per information
More informationThe finite lattice representation problem and intervals in subgroup lattices of finite groups
The finite lattice representation problem and intervals in subgroup lattices of finite groups William DeMeo Math 613: Group Theory 15 December 2009 Abstract A well-known result of universal algebra states:
More informationLecture 9: Games I. Course plan. A simple game. Roadmap. Machine learning. Example: game 1
Lecture 9: Games I Course plan Search problems Markov decision processes Adversarial games Constraint satisfaction problems Bayesian networks Reflex States Variables Logic Low-level intelligence Machine
More informationECN101: Intermediate Macroeconomic Theory TA Section
ECN101: Intermediate Macroeconomic Theory TA Section (jwjung@ucdavis.edu) Department of Economics, UC Davis November 4, 2014 Slides revised: November 4, 2014 Outline 1 2 Fall 2012 Winter 2012 Midterm:
More informationOn the Optimality of a Family of Binary Trees Techical Report TR
On the Optimality of a Family of Binary Trees Techical Report TR-011101-1 Dana Vrajitoru and William Knight Indiana University South Bend Department of Computer and Information Sciences Abstract In this
More information16 MAKING SIMPLE DECISIONS
253 16 MAKING SIMPLE DECISIONS Let us associate each state S with a numeric utility U(S), which expresses the desirability of the state A nondeterministic action a will have possible outcome states Result(a)
More informationNon-Deterministic Search
Non-Deterministic Search MDP s 1 Non-Deterministic Search How do you plan (search) when your actions might fail? In general case, how do you plan, when the actions have multiple possible outcomes? 2 Example:
More informationSAT and DPLL. Introduction. Preliminaries. Normal forms DPLL. Complexity. Espen H. Lian. DPLL Implementation. Bibliography.
SAT and Espen H. Lian Ifi, UiO Implementation May 4, 2010 Espen H. Lian (Ifi, UiO) SAT and May 4, 2010 1 / 59 Espen H. Lian (Ifi, UiO) SAT and May 4, 2010 2 / 59 Introduction Introduction SAT is the problem
More informationNotes on the symmetric group
Notes on the symmetric group 1 Computations in the symmetric group Recall that, given a set X, the set S X of all bijections from X to itself (or, more briefly, permutations of X) is group under function
More informationCharacterization of the Optimum
ECO 317 Economics of Uncertainty Fall Term 2009 Notes for lectures 5. Portfolio Allocation with One Riskless, One Risky Asset Characterization of the Optimum Consider a risk-averse, expected-utility-maximizing
More informationSequential Decision Making
Sequential Decision Making Dynamic programming Christos Dimitrakakis Intelligent Autonomous Systems, IvI, University of Amsterdam, The Netherlands March 18, 2008 Introduction Some examples Dynamic programming
More informationCOMP417 Introduction to Robotics and Intelligent Systems. Reinforcement Learning - 2
COMP417 Introduction to Robotics and Intelligent Systems Reinforcement Learning - 2 Speaker: Sandeep Manjanna Acklowledgement: These slides use material from Pieter Abbeel s, Dan Klein s and John Schulman
More informationMarkov Decision Processes
Markov Decision Processes Ryan P. Adams COS 324 Elements of Machine Learning Princeton University We now turn to a new aspect of machine learning, in which agents take actions and become active in their
More informationUnary PCF is Decidable
Unary PCF is Decidable Ralph Loader Merton College, Oxford November 1995, revised October 1996 and September 1997. Abstract We show that unary PCF, a very small fragment of Plotkin s PCF [?], has a decidable
More informationCSCI 104 B-Trees (2-3, 2-3-4) and Red/Black Trees. Mark Redekopp David Kempe
1 CSCI 104 B-Trees (2-3, 2-3-4) and Red/Black Trees Mark Redekopp David Kempe 2 An example of B-Trees 2-3 TREES 3 Definition 2-3 Tree is a tree where Non-leaf nodes have 1 value & 2 children or 2 values
More informationGAME THEORY. Department of Economics, MIT, Follow Muhamet s slides. We need the following result for future reference.
14.126 GAME THEORY MIHAI MANEA Department of Economics, MIT, 1. Existence and Continuity of Nash Equilibria Follow Muhamet s slides. We need the following result for future reference. Theorem 1. Suppose
More informationECE 586GT: Problem Set 1: Problems and Solutions Analysis of static games
University of Illinois Fall 2018 ECE 586GT: Problem Set 1: Problems and Solutions Analysis of static games Due: Tuesday, Sept. 11, at beginning of class Reading: Course notes, Sections 1.1-1.4 1. [A random
More informationValuation of Options: Theory
Valuation of Options: Theory Valuation of Options:Theory Slide 1 of 49 Outline Payoffs from options Influences on value of options Value and volatility of asset ; time available Basic issues in valuation:
More informationSecurity-aware Program Transformations
Security-aware Program Transformations Massimo Bartoletti, Pierpaolo Degano, Gian Luigi Ferrari Dipartimento di Informatica, Università di Pisa ICTCS 03 p.1 Stack Inspection (1) access control mechanism
More informationOutline of Lecture 1. Martin-Löf tests and martingales
Outline of Lecture 1 Martin-Löf tests and martingales The Cantor space. Lebesgue measure on Cantor space. Martin-Löf tests. Basic properties of random sequences. Betting games and martingales. Equivalence
More informationAdvanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras
Advanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras Lecture 21 Successive Shortest Path Problem In this lecture, we continue our discussion
More informationOutline Introduction Game Representations Reductions Solution Concepts. Game Theory. Enrico Franchi. May 19, 2010
May 19, 2010 1 Introduction Scope of Agent preferences Utility Functions 2 Game Representations Example: Game-1 Extended Form Strategic Form Equivalences 3 Reductions Best Response Domination 4 Solution
More informationGoblint Against Auto Racing
Goblint Against Auto Racing Detecting Concurrency Flaws in Interrupt-Driven Software Vesal Vojdani (based on Schwarz, Seidl, Vojdani, Lammich, and Müller-Olm. Static Analysis of Interrupt-Driven Programs
More information5 Deduction in First-Order Logic
5 Deduction in First-Order Logic The system FOL C. Let C be a set of constant symbols. FOL C is a system of deduction for the language L # C. Axioms: The following are axioms of FOL C. (1) All tautologies.
More informationSAT and DPLL. Espen H. Lian. May 4, Ifi, UiO. Espen H. Lian (Ifi, UiO) SAT and DPLL May 4, / 59
SAT and DPLL Espen H. Lian Ifi, UiO May 4, 2010 Espen H. Lian (Ifi, UiO) SAT and DPLL May 4, 2010 1 / 59 Normal forms Normal forms DPLL Complexity DPLL Implementation Bibliography Espen H. Lian (Ifi, UiO)
More informationRisk Management for Distributed Authorization
Risk Management for Distributed Authorization Christian Skalka University of Vermont Peter Chapin University of Vermont X. Sean Wang University of Vermont Abstract Distributed authorization takes into
More informationCSC 474/574 Information Systems Security
CSC 474/574 Information Systems Security Topic 4.2: Lattice Based Access Control Models CSC 474/574 Dr. Peng Ning 1 LATTICE-BASED MODELS Information flow policies Denning s axioms Bell-LaPadula model (BLP)
More informationOptimal Satisficing Tree Searches
Optimal Satisficing Tree Searches Dan Geiger and Jeffrey A. Barnett Northrop Research and Technology Center One Research Park Palos Verdes, CA 90274 Abstract We provide an algorithm that finds optimal
More informationObjec&ves. Review: Graphs. Finding Connected Components. Implemen&ng the algorithms
Objec&ves Finding Connected Components Ø Breadth-first Ø Depth-first Implemen&ng the algorithms Jan 31, 2018 CSCI211 - Sprenkle 1 Review: Graphs What are the two ways to represent graphs? What is the space
More information