540 likes | 672 Views
Behavioral Computation Theory: Tutorial. Yuri Gurevich (Microsoft Research) WoLLIC 2006. Agenda. Sequential algorithms Interactive algorithms. Part 1: Sequential algorithms. Intuition Axiomatic definition Behavioral equivalence Sequential abstract state machines
E N D
Behavioral Computation Theory: Tutorial Yuri Gurevich (Microsoft Research) WoLLIC 2006
Agenda • Sequential algorithms • Interactive algorithms
Part 1: Sequential algorithms • Intuition • Axiomatic definition • Behavioral equivalence • Sequential abstract state machines • Sequential Characterization Theorem • Algorithms are ASMs, and vice versa, as far as behavior is concerned.
Example: Euclid’s algorithm • If a = 0, set d = b and halt. • Set a = b mod a, set b = a,and go to 1.
Example: Euc Initiallyt = 0; a(0), b(0) well defined. • If a(t) = 0, set d = b(t) and halt. • Set a(t+1)= b(t) mod a(t),set b(t+1) = a(t), increment t, and go to 1.
A run of Euc t = 0, a(0) = 6, b(0) = 9 t = 1, a(1) = 3, b(1) = 6 t = 2, a(2) = 0, b(2) = 3 t,a,b unchanged, d = 3
Which algos are sequential? • Negative characterization: neither parallel nor distributed • Positive characterization is our goal. • But we cannot rely on the formal notion of algorithm, so the notion that we have to define is that of sequential algorithms.
Seq Time Postulate Every algorithm is associated with • a nonempty set States • a nonempty subset Initial States • a transition function Next : States States
Intuition on states • States are comprehensive. • What are states of a Turing machine? • What are states of a C program?
Behavior Equivalence Two algorithms are behaviorally equivalent if they have the same states, initial states and transition function. • The equivalence relation is semantical:the programs may be different indeed.
What else can be said of seq algos in full generality? • Constructive (tangible) inputs • Not necessarily • Finite Programs • Sure, but syntax is messy. • Small (local, bounded-work) step • But what’s local? • How to measure work?
Bounded work vs. bounded change Bounded work bounded change, butbounded change ↛ bounded work, e.g. if xy({x,y} E) then output := false else output := true
Abstract State Postulate • The states are structures of the same vocabulary. • Base(Next(X)) = Base(X). • If is an isomorphism from a state X to a structure Y, then Y is a state and is an isomorphism from Next(X) to Next(Y).
Without loss of generality • A state comes with • the equality relation = • true, false and the standard propositional connectives • undef
Euc’s states (non-logic part) • A Euclidean domain E (with mod) including the set N of natural numbers with 0 and successor +1 • Unary dynamic functions a, b : N E • Nullary dynamic functions d,t
Euc’s associates • States: as described above. • A state is initial if d = undef, t = 0. • Next is given by the program.
Euc’s vocabulary (non-logic part) • Static part • In principle, the vocabulary of Euclidean domains (with mod) • In fact, Euc uses only 0,+1,mod • Dynamic part • Unary function symbols a,b • Nullary function symbols d,t
Actions • Locations and their contents = (f,a1,..,aj) Content() = f(a1,..,aj) • Updates (,v) • The update set at state X is (X) = { (,v) : v = Content() in Next(X) Content() in X }
Euc’s locations and actions • Dynamic locations: (a,.), (b,.), t, d. • If a(0) = 6, b(0) = 9 at X then(X) = { (t,1),((a,1),3) , ((b,1),6) }(Next(X)) = {(t,2), ((a,2),0) , ((b,2)3)}(Next(Next(X))) = { (d,3) }
Element Accessibility • The only way to refer to an element ais via a term that evaluates to a. • A finite program can refer to only boundedly many elements
Bounded Exploration Postulate There is a finite set T of termssuch that for all states X,Y if ValX(t) = ValY(t) for t ∈ T then (X) = (Y).
A bounded exploration witness for Euc • true, false, undef • Termsa(t)=0, a(t+1), b(t) mod a(t), b(t+1), d, and their subterms
Definition A sequential algorithm is any object that satisfies the postulates: • sequential time, • abstract state, • bounded-exploration. Is this definition too general?
Seq Abstract State Machines • A program is just a rule (to be iterated) • An ASM of vocabulary V is given by • a program of vocabulary V • a non-empty set of V-structures (the states)closed under isomorphism and the transition function defined by the program • a non-empty subset of initial statesclosed under isomorphism
Every seq ASM is a seq algo • Sequential time: obvious • Abstract state: obvious • Bounded exploration: take • all the terms in the program • all their subterms • all logical constants
Seq Characterization Theorem • For every sequential algorithm A,there exists a sequential ASM behaviorally equivalent to A. • In particular, the ASM simulates A step for step.
An ASM program for Euc if a(t) = 0 then d := b(t)else [do in-parallel] a(t+1) := b(t) mod a(t) b(t+1) := a(t) t := t+1
Euclid if a = 0 then d := belse a := b mod a b := a
Euclid with sessions if a(s)=0 then d(s) := b(s) s := s+1 else a(s) := b(s) mod a(s) b(s) := a(s)
Reference • ACM Trans. on Computational Logicvol. 1, no. 1 (July 2000), p. 77-111. • #141 in Annotated Articles athttp://research/microsoft/~gurevich
Homework Write an ASM program for your favorite sequential algorithm. If you want to execute it, go tohttp://research.microsoft.com/foundations/AsmL/
Collaborators • Andreas Blass, Dean Rosenzweig, Benjamin Rossman • Refs: #166, #170, #171, #176
Time permitting, plan would be • Intuition • Axiomatic definition • Behavioral equivalence • Interactive ASMs • Interactive Characterization Theorem • Algorithms are ASMs, and vice versa, as far as behavior is concerned.
More realistic plan Motivation, clarification, small examples
Interstep vs. intrastep • Sequential algorithms and ASMs are interstep interactive. • The sequential characterization theorem generalizes to interstep interaction. • From now on, by default, interaction is intrastep. • But is there intrastep interaction?
Import • A Turing machine with tape that is only potentially infinite • How does it create new cells? • Object creation in object oriented programming • Who creates the objects? • Import is a manifestation of interaction.
Seq ASMs with import • if Move=R, H+1 = undef, … then import x x := H+1 H := x … • Reserve • Background
Nondeterministic algorithms • A contradiction in terms • Yogi Berra: “When you come to a fork in the road, take it.” • Explanation: nondeterminism is a manifestation of interaction • Nondeterministic FSM • Nondeterministic algorithms • E.g. bipartite matching
Nondeterministic ASMs • q := (any x: x in (q,a)) • Alternative syntax:choose x in (q,a) q := x … • Case of(q,a) =
More examples • Input, remote procedure calls • x := f(17)+2 • In the case of parallel algorithms • Receiving and sending mail • Ping • Print
A more involved example • To paint a picture, an application calls an outside paint method. • A paint agent is created and repeatedly calls back: which color for this detail? • Consider making two such paint calls in parallel. This is viewed best as a single step.
What is it all about? • Distributed computations from the point of view of a single agent. • Setup: one algorithm interacts with the environment. • From the algorithm’s point of view, the interaction is by means of messages only; there are no locations shared by the algorithm and the environment.
What is environment? • It is everything that can affect the computation of the algorithm but is neither in the algorithm's state nor in its program. • This may include other (silicon or carbon) agents, some central authority (think internet poker), OS, communication interfaces (think TCP/IP).
Various Interaction Mechanisms • RPC • Messages • Single-answer queries • Multiple-answer queries • Etc. Is there one universal mechanism? Yes.
Queries • Getting input, printing output • Receiving and sending messages • Non-deterministic choices • New objects • Calling an external function (in ASMs) • Implicit queries
What’s a message(in the algorithm’s view)? • A query or reply to a query. • What if interaction is initiated from outside? • The algorithm needs to pay attention in order to notice an incoming message. • Paying attention is a (possibly implicit) query.
Are queries blocking? • Not necessarily. It may be blocking: if p! then x:=1 • A query may be blocking or not depending on history:if (p ⋎ q) then x:=1 • An algorithm is patient if all its queries are blocking.
Is the environment info limited to query replies? • Almost. We argue that the only extra info is the order the replies are received. • The broker example. • The order of replies is quasi linear. • An algorithm is time-insensitive if the order is immaterial.