Lecture 2 - Algorithms and Boolean Algebra

advertisement
Lecture 2: Systems
Engineering
EEN 112: Introduction to
Electrical and Computer
Engineering
Professor Eric Rozier, 1/23/2013
CROSSING THE RIVER…
Farmer, Wolf, Goat, Cabbage
A farmer needs to transport
a wolf, a goat, and a
cabbage across the river.
• Boat has two seats
• Farmer must drive…
• If left alone…
• The wolf will eat the
goat.
• The goat will eat the
cabbage.
Farmer, Wolf, Goat, Cabbage
As a group, formulate a
solution to transport
everything across the river,
without anything being
eaten.
What do we learn from this
exercise?
• Sometimes we have to move backwards to
move forwards.
• Even simple systems need thought to
formulate a plan for accomplishing their goals.
We call this plan, an algorithm.
ALGORITHMS
Algorithms
• al-Khwarizmi
– Persian mathematician,
astronomer, and
geographer born
780 A.D.
– Invented a few things…
• Decimal system
• Algebra
• Trigonometry
Algorithms
• al-Khwarizmi also introduced the idea of solving problems
using step-by-step procedures for calculations.
• Algorithms – A method of solving a problem or accomplishing
a task expressed as a finite list of well defined instructions.
– Starting from an initial state and an initial input, the
instructions describe a computation that, when executed
will proceed through a finite number of well defined
successive states, eventually producing output, and
terminating at a final ending state.
States, Inputs, and Outputs
• States are a way of measuring the condition of
a system, and it’s environment.
• Inputs are a way of getting information to a
system.
• Outputs are a way of getting information from
a system.
Algorithms
• Algorithms let us
define, formally, what
we want machines and
automated systems to
do.
• Algorithms are written
to have precise
meanings, and to be
generally applicable.
Systems Engineering and
Cyberphysical Systems
• We build systems to do jobs, solve problems,
and accomplish tasks.
• Often these systems are cyberphysical
systems, i.e. they combine computational
components with the real world.
• An algorithm is a way of telling the
components how to do their job, and how to
work together.
Example System: Thermostat
• Thermostat
– What is the goal?
– What problem does it
solve?
– How would we
characterize the state?
– What would the inputs
and outputs be?
Example System: Thermostat
• Thermostat
– What is the goal?
– What problem does it
solve?
– How would we
characterize the state?
– What would the inputs
and outputs be?
– Break into groups
• Define the problem
• Define what the thermostat
needs to do
Example System: Thermostat
• Thermostat
– Regulate temperature
– Specification
• Must be able to sense
temperature
• Based on the
temperature must be able
to signal cooling or
warming the room, or to
do nothing.
• State: temperature,
heating state, cooling
state
Example System: Thermostat
• Thermostat
– Pseudocode algorithm
• tempLow = L
• tempHigh = H
• loop()
– Test temperature, store
the value in T
– If (T < L) send a heating
signal
– If (T > H) send a cooling
signal
Example System: Thermostat
Thermostat
Signal: Heat
Signal: Cool
Heater
Sensor
Air
Conditioner
Thermostat
Signal: Heat
Signal: Cool
Heater
Sensor
• Some important points…
– Four systems here, each with their
implementations…
– Need to communicate with each other…
Air
Conditioner
Networking and Communication
• Systems communicate via signals, over wires,
or wirelessly via electromagnetic radiation.
• In our thermostat system, the heater and
cooler can be switched on or off by a pure
signal on the wire. I.e., if electrons are
flowing, turn on, if not, turn off!
Networking and Communication
• But how do we get information from the
sensor?
• It needs to send a number… how do we do
that?
Networking and Communication
• What if we encode the
signal into pulses?
• Detect if the value is
above or below some
threshold, and decide it
represents a 1, or a 0.
• Strings of 1’s and 0’s can
be interpreted as a
number.
Some simple things we can
represent with 1’s and 0’s
• True or false…
– 1 – true
– 0 – false
– We already were doing this with pure signals.
Some simple things we can
represent with 1’s and 0’s
• Integers
7
6
5
4
3
2
1
0
128
64
32
16
8
4
2
1
• Examples
– 00000000 – 0
– 00000001 – 1
– 00000011 – 3
- 00000010 - 2
- 00001010 – 10
- 10010011 – 147
Negative numbers and real
numbers are more complex…
We will cover those later…
Boolean Algebra
• Using true/false values in complicated ways
• Thermostat system
– Let’s make a change to the basic system
– Add a switch with values “Heat” and “Cool”
– Cool the room if T > H and Switch is set to “Heat”
– Heat the room if T < L and Switch is set to “Cool”
Boolean Algebra
• Gets back to gators and grades…
• Represent truth as 1, and false as 0
– We can operate on values using the following
basic operators:
• AND
• OR
• NOT
AND
• X AND Y
X=0
X=1
Y=0
0
0
Y=1
0
1
OR
• X OR Y
X=0
X=1
Y=0
0
1
Y=1
1
1
NOT
• NOT X
X=0
X=1
1
0
Abbreviations
• ^ - And
• v – Or
• ! – Not
• !X ^ Y
X=0
X=1
Y=0
0
0
Y=1
1
0
Commutative laws
• X^Y=Y^X
• XvY=YvX
Associative laws
• X ^ (Y ^ Z) = (X ^ Y) ^ Z
• X v (Y v Z) = (X v Y) v Z
Distributive laws
• X ^ (Y v Z) = (X ^ Y) v (X ^ Z)
• X v (Y ^ Z) = (X v Y) ^ (X v Z)
Some exercises
•
•
•
•
!x ^ !y
!(x ^ y)
!x ^ x
(x v y) ^ !(x ^ y)
Realization as electronic
components
AND
OR
NOT
Realization as electronic
components
AND
OR
NOT
Derived operators
• X XOR Y
– (x v y) ^ !(x ^ y)
– Exclusive Or
• XY
– (!X v Y)
– Implication
• X=Y
– (!X XOR Y)
De Morgan’s Laws
• The negation of a conjunction, is the
disjunction of the negations
– !(X ^ Y) <-> (!X) v (!Y)
– !(X v Y) <-> (!X) ^ (!Y)
Homework
• Prove the equivalence of the expressions in De
Morgan’s Laws with truth tables (show they
are the same!)
Download