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 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 Heater Air Conditioner Signal: HeatSignal: Cool Sensor
Some important points… – Four systems here, each with their implementations… – Need to communicate with each other… Thermostat Heater Air Conditioner Signal: HeatSignal: Cool Sensor
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 Examples – 00000000 – 0- 00000010 - 2 – 00000001 – 1- 00001010 – 10 – 00000011 – 3- 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