0% found this document useful (0 votes)
133 views41 pages

03 Discrete Systems PDF

This document discusses modeling discrete dynamics using finite state machines (FSM). It begins by introducing discrete systems and state machines. It then provides examples of modeling a car parking system and temperature control system as FSMs. The key concepts discussed include states, transitions, inputs, outputs, the update function, and the differences between Mealy and Moore machines. Extended FSMs are introduced which can include variables, inputs, outputs, and transition conditions with actions. An example FSM is provided to model the behavior of a pedestrian crosswalk traffic light.

Uploaded by

utpal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
133 views41 pages

03 Discrete Systems PDF

This document discusses modeling discrete dynamics using finite state machines (FSM). It begins by introducing discrete systems and state machines. It then provides examples of modeling a car parking system and temperature control system as FSMs. The key concepts discussed include states, transitions, inputs, outputs, the update function, and the differences between Mealy and Moore machines. Extended FSMs are introduced which can include variables, inputs, outputs, and transition conditions with actions. An example FSM is provided to model the behavior of a pedestrian crosswalk traffic light.

Uploaded by

utpal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 41

Modeling: Discrete dynamics

Arijit Mondal
Dept. of Computer Science & Engineering
Indian Institute of Technology Patna
[email protected]

IIT Patna 1
Introduction
• Embedded systems can include both discrete and continuous dynamics
• Continuous dynamics can be modeled by ordinary differential equation
• State machines are used to model discrete behavior of the systems
• A system operates in a sequence of discrete steps
• Example
• Number of cars in a parking area

IIT Patna 2
Car parking
• Arrival detector, departure detector

Arrival
Detector Counter
count
X Display
Departure i
detector

• Similar to integrator
• Input is not continuous u : R → {absent, present}
• Also known as pure signal

IIT Patna 3
Event
• Systems are event triggered
• Sequence of steps known as reaction
• A particular reaction will observe the values of the inputs at a particular time and
calculate output values for the same time
• An actor has input ports P = {p1 , p2 , . . . , pN }
• Vp denotes the type of p (values may be received)
• At each reaction a variable can take p ∈ Vp ∪ {absent}

IIT Patna 4
Notion of state
• State of a system is its condition at a particular point of time
• State affects how the system reacts to inputs
• Integrator : discrete vs continuous
• Discrete modes with finite state space are called finite state machine

IIT Patna 5
Finite State Machine
• A state machine is a model with discrete dynamics that maps valuations of the inputs
to outputs where the map may depend on its current state

State 1 State 2

Initial
guard/action

State 3

IIT Patna 6
Finite State Machine: example

inputs: up, down: pure


outputs: count:{0, 1, . . . , M}

up ∧ ¬down/1 up ∧ ¬down/2 up ∧ ¬down/3 up ∧ ¬down/M

0 1 2 ... M
down ∧ ¬up/0 down ∧ ¬up/1 down ∧ ¬up/2 down ∧ ¬up/M − 1

IIT Patna 7
Transition
• It governs the discrete dynamics of FSM
• Guard/Action
• Guard determines whether the transition may take on a reaction
• Action specifies the output for each reaction
• If p1 and p2 are inputs to FSM
• true — transition is always enabled
• p1 — transition is enabled if p1 is present
• ¬p1 — transition is enabled if p1 is absent
• p1 ∧ p2 — transition is enabled if both p1 and p2 are present
• p1 ∨ p2 — transition is enabled if either p1 or p2 are present

IIT Patna 8
Default transition

up ∧ ¬down/1

0 ...
true/
¬up ∧ down/0

IIT Patna 9
Finite State Machine: example

inputs: temp: R
outputs: on, off : pure
temp ≤ 18/off

Cooling Heating

temp ≥ 22/on

IIT Patna 10
FSM Definition
• It is a tuple hStates, Inputs, Outputs, Update, InitialStatei
• States — finite number of states
• Inputs — set of input valuations
• Outputs — set of output valuations
• Update — States × Inputs → States × Outputs, mapping a state and input valuation
to a next state and a output valuation
• InitialState — start state

IIT Patna 11
FSM example
• States = {0, 1, 2, . . . , M}
• Inputs = {up, down} → {present, absent}
• Outputs = {count} → {0, 1, 2, . . . , M}
• InitialState = 0 
 (s + 1, s + 1) if s < M ∧ up = present ∧ down = absent

• update(s, i) = (s − 1, s − 1) if s > 0 ∧ up = absent ∧ down = present

 (s, absent) otherwise

inputs: up, down: pure


outputs: count:{0, 1, . . . , M}

up ∧ ¬down/1 up ∧ ¬down/2 up ∧ ¬down/3 up ∧ ¬down/M

0 1 2 ... M
down ∧ ¬up/0 down ∧ ¬up/1 down ∧ ¬up/2 down ∧ ¬up/M − 1

IIT Patna 12
A few terminologies
• Determinacy — If for each state there is at most one transition enabled by each
input value
• Update function is not one to many mapping
• Same input will produce same output always
• Receptiveness — If for each state there is at least one transition possible on each
input symbol
• FSM is receptive as ’update’ is a function, not a partial function
• Chattering — A system oscillates between two states rapidly
• Stuttering — A system remains in the state due to absence of inputs and outputs
• Hysteresis — Dependence of the state of a system on its history.

IIT Patna 13
Mealy vs Moore machine
• Mealy machine
• Named after George Mealy
• Characterized by producing outputs when a transition is taken
• Moore machine
• Named after Edward Moore
• Produces the output when the machine is in a state
• Output is function of state only
• Strictly causal

• A Mealy machine can be converted into Moore machine


• A Moore machine can be converted into Mealy machine
• Mealy machine is preferred because of compactness and output is instantaneous with
respect to inputs

IIT Patna 14
Moore machine: example

inputs: up, down: pure


outputs: count:{0, 1, . . . , M}

up ∧ ¬down up ∧ ¬down up ∧ ¬down up ∧ ¬down

0/0 1/1 2/2 ... M/M


down ∧ ¬up down ∧ ¬up down ∧ ¬up down ∧ ¬up

IIT Patna 15
Extended FSM

¬up ∧ down ∧ c > 0/c − 1


c := c − 1

variable: c : {0, 1, . . . , M}
inputs: up, down: pure counting
outputs: count:{0, 1, . . . , M} c := 0

up ∧ ¬down ∧ c < M/c + 1


c := c + 1

IIT Patna 16
Extended FSM

guard/output action
set action

variable declaration
input declaration State 1 State 2
output declaration Initial set
condition
guard/output action
set action

IIT Patna 17
Example: pedestrian crosswalk
• It starts with red
• It moves to green after 60 seconds
• It will remain in green if there is no pedestrian
• If the light goes to green, then it remains there at least for 60 seconds
• If there is a pedestrian, light becomes yellow if it has been green for more than 60
seconds
• The yellow light will remain for 5 seconds before it turns to red

IIT Patna 18
Example: pedestrian crosswalk

green

red pending

yellow

IIT Patna 19
Example: pedestrian crosswalk
variable: count : {0, 1, . . . , 60}
input: pedestrian : pure
output: sigY , sigG , sigR : pure
green

red pending

yellow

IIT Patna 19
Example: pedestrian crosswalk
variable: count : {0, 1, . . . , 60}
input: pedestrian : pure
output: sigY , sigG , sigR : pure
green

red pending

count := 0

yellow

IIT Patna 19
Example: pedestrian crosswalk
variable: count : {0, 1, . . . , 60}
input: pedestrian : pure
output: sigY , sigG , sigR : pure
green

count :=
count + 1 red pending

count := 0

yellow

IIT Patna 19
Example: pedestrian crosswalk
variable: count : {0, 1, . . . , 60}
input: pedestrian : pure
output: sigY , sigG , sigR : pure

count ≥ 60/sigG green


count := 0

count :=
count + 1 red pending

count := 0

yellow

IIT Patna 19
Example: pedestrian crosswalk
variable: count : {0, 1, . . . , 60}
input: pedestrian : pure
count < 60/
output: sigY , sigG , sigR : pure
count := count + 1
count ≥ 60/sigG green
count := 0

count :=
count + 1 red pending

count := 0

yellow

IIT Patna 19
Example: pedestrian crosswalk
variable: count : {0, 1, . . . , 60}
input: pedestrian : pure
count < 60/
output: sigY , sigG , sigR : pure
count := count + 1
count ≥ 60/sigG green pedestrian ∧ count < 60/
count := 0 count := count + 1

count :=
count + 1 red pending

count := 0

yellow

IIT Patna 19
Example: pedestrian crosswalk
variable: count : {0, 1, . . . , 60}
input: pedestrian : pure
count < 60/
output: sigY , sigG , sigR : pure
count := count + 1
count ≥ 60/sigG green pedestrian ∧ count < 60/
count := 0 count := count + 1

count :=
count + 1 red pending count :=
count + 1
count := 0

yellow

IIT Patna 19
Example: pedestrian crosswalk
variable: count : {0, 1, . . . , 60}
input: pedestrian : pure
count < 60/
output: sigY , sigG , sigR : pure
count := count + 1
count ≥ 60/sigG green pedestrian ∧ count < 60/
count := 0 count := count + 1

count :=
count + 1 red pending count :=
count + 1
count := 0 count ≥ 60/sigY
yellow count := 0

IIT Patna 19
Example: pedestrian crosswalk
variable: count : {0, 1, . . . , 60}
input: pedestrian : pure
count < 60/
output: sigY , sigG , sigR : pure
count := count + 1
count ≥ 60/sigG green pedestrian ∧ count < 60/
count := 0 count := count + 1

count := pedestrian ∧ count ≥ 60/sigY


count + 1 red count := 0 pending count :=
count + 1
count := 0 count ≥ 60/sigY
yellow count := 0

IIT Patna 19
Example: pedestrian crosswalk
variable: count : {0, 1, . . . , 60}
input: pedestrian : pure
count < 60/
output: sigY , sigG , sigR : pure
count := count + 1
count ≥ 60/sigG green pedestrian ∧ count < 60/
count := 0 count := count + 1

count := pedestrian ∧ count ≥ 60/sigY


count + 1 red count := 0 pending count :=
count + 1
count := 0 count ≥ 60/sigY
yellow count := 0

count := count + 1
IIT Patna 19
Example: pedestrian crosswalk
variable: count : {0, 1, . . . , 60}
input: pedestrian : pure
count < 60/
output: sigY , sigG , sigR : pure
count := count + 1
count ≥ 60/sigG green pedestrian ∧ count < 60/
count := 0 count := count + 1

count := pedestrian ∧ count ≥ 60/sigY


count + 1 red count := 0 pending count :=
count + 1
count := 0 count ≥ 60/sigY
count ≥ 5/sigR
count := 0 yellow count := 0

count := count + 1
IIT Patna 19
Extended FSM
• The state of an extended machine includes not only the information about which
discrete state the machine is in, but also what values any variables have.
• Suppose there is, n discrete states, m variables each of which can take one of p possible
values
• Size of the state space will be |States| = np m

IIT Patna 20
Example
inputs: up, down: pure
outputs: count:{0, 1, . . . , M}

up ∧ ¬down/1 up ∧ ¬down/2 up ∧ ¬down/3 up ∧ ¬down/M

0 1 2 ... M
down ∧ ¬up/0 down ∧ ¬up/1 down ∧ ¬up/2 down ∧ ¬up/M − 1

¬up ∧ down ∧ c > 0/c − 1


c := c − 1

variable: c : {0, 1, . . . , M}
inputs: up, down: pure counting
outputs: count:{0, 1, . . . , M} c := 0

up ∧ ¬down ∧ c < M/c + 1


c := c + 1

IIT Patna 21
Example: infinite states

¬up ∧ down ∧ c > 0/c − 1


c := c − 1

variable: c : {0, 1, . . . , M}
inputs: up, down: pure counting
outputs: count:{0, 1, . . . , M} c := 0

up ∧ ¬down∧c < M/c + 1


c := c + 1

IIT Patna 22
Pedestrian crosswalk: state count

variable: count : {0, 1, . . . , M}


input: pedestrian : pure
count < 60/
output: sigY , sigG , sigR : pure
count := count + 1
count ≥ 60/sigG green pedestrian ∧ count < 60/
count := 0 count := count + 1

count := pedestrian ∧ count ≥ 60/sigY


count + 1 red count := 0 pending count :=
count + 1
count := 0 count ≥ 60/sigY
count ≥ 5/sigR
count := 0 yellow count := 0

count := count + 1

IIT Patna 23
Nondeterminism
• A state machine interacts with the environment
• Modeling of pedestrian

• If for any state, two distinct transitions with guards that can evaluate to true in the
same reaction, then the machine is nondeterministic
true/pedestrian
inputs: sigR, sigG , sigY : pure
output: pedestrian : pure

none waiting
true/

sigG / sigR/
crossing

IIT Patna 24
Nondeterministic FSM
• It is a tuple hStates, Inputs, Outputs, possibleUpdates, InitialStatesi
• States — finite number of states
• Inputs — set of input valuations
• Outputs — set of output valuations
• possibleUpdates — States × Inputs → 2States×Outputs , mapping a state and input
valuation to a next state and a set of possible (next state, output) pairs. Also known
as Transition Relation
• InitialStates — start states

IIT Patna 25
Nondeterministic FSM

output: sigR, sigG , sigY : pure


input: pedestrian : pure green true/sigG
true/sigG

true/sigR red true/sigY

true/sigR
yellow true/sigY

IIT Patna 26
Uses of nondeterminism
• Environment modeling — to hide irrelevant details
• Specifications — system requirements imposes constraints on some features while the
others are unconstrained

• Probabilistic FSM is different from Non-deterministic FSM


• In probabilistic FSM, every transition is associated with some probability

IIT Patna 27
Behavior & Traces
• Behavior of state machine is an assignment of such signals to each port such that the
signal on any output port is the output sequence produced by the input signals
• Example: garage counter
sup = {absent, absent, present, absent, present, present, . . .}
sdown = {absent, absent, absent, present, absent, absent, . . .}
scount = {absent, absent, 1, 0, 1, 2, . . .}
• sup , sdown , scount together form the behavior
• For deterministic FSM if input sequence is known the output sequence can be deter-
mined
• Set of all behaviors of a state machine M is called its language L(M)

IIT Patna 28
Behavior & Traces (contd.)
• A behavior may be more conveniently represented as a sequence of valuations called
observable trace
• If xi is input and Yi is output then following is an observable sequence
((x0 , y0 ), (x1 , y1 ), . . .)

• An execution trace may be defined as


((x0 , s0 , y0 ), (x1 , s1 , y1 ), . . .)

s0 x0 /y0→ s1 x1 /y1→ s2 . . .

IIT Patna 29
Computation trees
• For nondeterministic machine, it may be useful to represent all possible traces

red
true/sigR true/sigY

red green
true/sigY
true/sigY true/sigR
true/sigG
yellow yellow green red

.. .. .. .. .. .. .. ..
. . . . . . . .

IIT Patna 30

You might also like