EDA045F: Program Analysis LECTURE 3: DATAFLOW ANALYSIS 2. Christoph Reichenbach

Size: px
Start display at page:

Download "EDA045F: Program Analysis LECTURE 3: DATAFLOW ANALYSIS 2. Christoph Reichenbach"

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

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 information

Lattice-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. 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 information

Lattices and the Knaster-Tarski Theorem

Lattices 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 information

Principles of Program Analysis: Algorithms

Principles 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 information

Lecture Notes: Interprocedural Analysis

Lecture 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 information

Generating all modular lattices of a given size

Generating 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 information

CTL Model Checking. Goal Method for proving M sat σ, where M is a Kripke structure and σ is a CTL formula. Approach Model checking!

CTL 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 information

The illustrated zoo of order-preserving functions

The 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. É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 information

Semantics and Verification of Software

Semantics 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 information

Node betweenness centrality: the definition.

Node 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 information

Residuated Lattices of Size 12 extended version

Residuated 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 information

Filters - Part II. Quotient Lattices Modulo Filters and Direct Product of Two Lattices

Filters - 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 information

CSE 21 Winter 2016 Homework 6 Due: Wednesday, May 11, 2016 at 11:59pm. Instructions

CSE 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 information

Binary Decision Diagrams

Binary 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 information

Chair 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 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 information

Binary Decision Diagrams

Binary 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 information

MAT385 Final (Spring 2009): Boolean Algebras, FSM, and old stuff

MAT385 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 information

CS 188: Artificial Intelligence

CS 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 information

CS 188: Artificial Intelligence

CS 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 information

Sublinear Time Algorithms Oct 19, Lecture 1

Sublinear 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 information

So we turn now to many-to-one matching with money, which is generally seen as a model of firms hiring workers

So 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 information

Reinforcement 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 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 information

Fibonacci 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 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 information

Another Variant of 3sat. 3sat. 3sat Is NP-Complete. The Proof (concluded)

Another 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 information

Lecture Notes on Bidirectional Type Checking

Lecture 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 information

Lecture Notes on Type Checking

Lecture 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 information

Single-Parameter Mechanisms

Single-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 information

Efficiency, Precision, Simplicity, and Generality in Interprocedural Data Flow Analysis:

Efficiency, 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 information

CSCE 750, Fall 2009 Quizzes with Answers

CSCE 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 information

Lattice Model of Flow

Lattice 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 information

Lecture 14: Basic Fixpoint Theorems (cont.)

Lecture 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 information

Rational Behaviour and Strategy Construction in Infinite Multiplayer Games

Rational 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 information

THE NUMBER OF UNARY CLONES CONTAINING THE PERMUTATIONS ON AN INFINITE SET

THE 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 information

An orderly algorithm to enumerate finite (semi)modular lattices

An 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 information

Outline for this Week

Outline 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 information

Maximum Contiguous Subsequences

Maximum 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 information

CATEGORICAL SKEW LATTICES

CATEGORICAL 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 information

Opinion formation CS 224W. Cascades, Easley & Kleinberg Ch 19 1

Opinion 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 information

While the story has been different in each case, fundamentally, we ve maintained:

While 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 information

Outline for this Week

Outline 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 information

CS 4110 Programming Languages & Logics. Lecture 2 Introduction to Semantics

CS 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 information

Mathematics Notes for Class 12 chapter 1. Relations and Functions

Mathematics 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 information

Computational Intelligence Winter Term 2009/10

Computational 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 information

Stochastic Dual Dynamic Programming

Stochastic 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 information

Game Theory Fall 2003

Game 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 information

Selective Context-Sensitivity Guided by Impact Pre-Analysis

Selective 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 information

Yao s Minimax Principle

Yao 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 information

White-Box Testing Techniques I

White-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 information

Information 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 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 information

CS221 / Spring 2018 / Sadigh. Lecture 9: Games I

CS221 / 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 information

CSEP 573: Artificial Intelligence

CSEP 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 information

Principles of Program Analysis: Abstract Interpretation

Principles 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 information

MAT 4250: Lecture 1 Eric Chung

MAT 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 information

ECON 459 Game Theory. Lecture Notes Auctions. Luca Anderlini Spring 2017

ECON 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 information

16 MAKING SIMPLE DECISIONS

16 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 information

Algebra homework 8 Homomorphisms, isomorphisms

Algebra 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 information

Generating all nite modular lattices of a given size

Generating 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 information

Reinforcement Learning

Reinforcement 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 information

A CATEGORICAL FOUNDATION FOR STRUCTURED REVERSIBLE FLOWCHART LANGUAGES: SOUNDNESS AND ADEQUACY

A 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 information

Introduction to Fall 2007 Artificial Intelligence Final Exam

Introduction 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 information

SMT and POR beat Counter Abstraction

SMT 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 information

Chapter 3. Dynamic discrete games and auctions: an introduction

Chapter 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 information

Lecture 4: Divide and Conquer

Lecture 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 information

CSE 473: Artificial Intelligence

CSE 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 information

Developmental Math An Open Program Unit 12 Factoring First Edition

Developmental 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 information

TABLEAU-BASED DECISION PROCEDURES FOR HYBRID LOGIC

TABLEAU-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 information

Dynamic Programming: An overview. 1 Preliminaries: The basic principle underlying dynamic programming

Dynamic 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 information

91.420/543: Artificial Intelligence UMass Lowell CS Fall 2010

91.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 information

White-Box Testing Techniques I

White-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 information

Lecture 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 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 information

Algorithmic Game Theory and Applications. Lecture 11: Games of Perfect Information

Algorithmic 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 information

The 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 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 information

Lecture 9: Games I. Course plan. A simple game. Roadmap. Machine learning. Example: game 1

Lecture 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 information

ECN101: Intermediate Macroeconomic Theory TA Section

ECN101: 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 information

On the Optimality of a Family of Binary Trees Techical Report TR

On 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 information

16 MAKING SIMPLE DECISIONS

16 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 information

Non-Deterministic Search

Non-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 information

SAT and DPLL. Introduction. Preliminaries. Normal forms DPLL. Complexity. Espen H. Lian. DPLL Implementation. Bibliography.

SAT 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 information

Notes on the symmetric group

Notes 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 information

Characterization of the Optimum

Characterization 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 information

Sequential Decision Making

Sequential 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 information

COMP417 Introduction to Robotics and Intelligent Systems. Reinforcement Learning - 2

COMP417 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 information

Markov Decision Processes

Markov 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 information

Unary PCF is Decidable

Unary 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 information

CSCI 104 B-Trees (2-3, 2-3-4) and Red/Black Trees. Mark Redekopp David Kempe

CSCI 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 information

GAME THEORY. Department of Economics, MIT, Follow Muhamet s slides. We need the following result for future reference.

GAME 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 information

ECE 586GT: Problem Set 1: Problems and Solutions Analysis of static games

ECE 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 information

Valuation of Options: Theory

Valuation 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 information

Security-aware Program Transformations

Security-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 information

Outline of Lecture 1. Martin-Löf tests and martingales

Outline 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 information

Advanced 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 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 information

Outline Introduction Game Representations Reductions Solution Concepts. Game Theory. Enrico Franchi. May 19, 2010

Outline 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 information

Goblint Against Auto Racing

Goblint 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 information

5 Deduction in First-Order Logic

5 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 information

SAT 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. 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 information

Risk Management for Distributed Authorization

Risk 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 information

CSC 474/574 Information Systems Security

CSC 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 information

Optimal Satisficing Tree Searches

Optimal 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 information

Objec&ves. Review: Graphs. Finding Connected Components. Implemen&ng the algorithms

Objec&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