Top Banner
1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL
51

1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

Dec 19, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

1

Improving Adaptability of Multi-Mode Systems via

Program Steering

Lee LinMichael D. Ernst

MIT CSAIL

Page 2: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

2

Multi-Mode Systems

• A multi-mode system’s behavior depends on its environment and internal state

• Examples of multi-mode systems:– Web server: polling / interrupt– Cell phone: AMPS / TDMA / CDMA – Router congestion control: normal / intentional drops– Graphics program: high detail / low detail

Page 3: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

3

Controllers

• Controller chooses which mode to use• Examples of factors that determine modes:

– Web server: heavy traffic vs. light traffic– Cell phone: rural area vs. urban area; interference– Router congestion control: preconfigured policy files – Graphics program: frame rate constraints

Page 4: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

4

Controller Example

while (true) { if ( checkForCarpet() ) indoorNavigation(); else if ( checkForPavement() ) outdoorNavigation(); else cautiousNavigation(); }

• Do the predicates handle all situations well?

• Is any more information available?

• Does the controller ever fail?

Page 5: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

5

Improving Built-in Controllers

• Built-in controllers do well in expected situations • Goal: Create a controller that adapts well to

unanticipated situations– Utilize redundant sensors during hardware failures – Sense environmental changes – Avoid default modes if other modes are more

appropriate– Continue operation if controller fails

Page 6: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

6

Why Make Systems Adaptive?

• Testing all situations is impossible• Programmers make mistakes

– Bad intuition– Bugs

• The real world is unpredictable– Hardware failures– External environmental changes

• Human maintenance is costly– Reduce need for user intervention– Issue fewer software patches

Page 7: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

7

Overview

• Program Steering Technique

• Mode Selection Example

• Program Steering Implementation

• Experimental Results

• Conclusions

Page 8: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

8

Program Steering Goals

• Create more adaptive systems without creating new modes

• Allow systems to extrapolate knowledge from successful training examples

• Choose appropriate modes in unexpected situations

Page 9: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

9

Program Steering Overview

1. Select representative training runs

2. Create models describing each mode using dynamic program analysis

3. Create a mode selector using the models

4. Augment the original program to utilize the new mode selector

Page 10: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

10

CollectTraining Data

Original Program

OriginalController

Page 11: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

11

CollectTraining Data

Original Program

OriginalController

DynamicAnalysis

Models

Page 12: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

12

CollectTraining Data

Original Program

Create ModeSelectorOriginal

Controller

ModeSelector

DynamicAnalysis

Models

Page 13: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

13

CollectTraining Data

Original Program

Models

Create ModeSelectorOriginal

Controller

Original Program

ModeSelector

DynamicAnalysis

Create NewController

NewController

NewController

Page 14: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

14

Overview

• Program Steering Technique

• Mode Selection Example

• Program Steering Implementation

• Experimental Results

• Conclusions

Page 15: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

15

Laptop Display Controller

• Three modes– Normal Mode– Power Saver Mode– Sleep Mode

• Available Data:– Inputs: battery life and DC power availability– Outputs: brightness

Page 16: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

16

Properties Observed from Training Runs

StandardMode

PowerSaverMode

SleepMode

Brightness >= 0

Brightness <= 10

Battery > 0.15

Battery <= 1.00

Brightness >= 0

Brightness <= 4

Battery > 0.00

Battery <= 0.15

DCPower == false

Brightness == 0

Battery > 0.00

Battery <= 1.00

Page 17: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

17

Mode Selection Problem

What mode is most appropriate?

Brightness == 8

Battery == 0.10

DCPower == true

CurrentProgramSnapshot

Page 18: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

18

Mode selection policy: Choose the mode with the highest percentage of matching properties.

Mode Selection

Brightness == 8

Battery == 0.10

DCPower == true

CurrentProgramSnapshot

Page 19: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

19

Mode selection policy: Choose the mode with the highest percentage of matching properties.

Mode Selection

Brightness == 8

Battery == 0.10

DCPower == true

CurrentProgramSnapshot

StandardMode

BRT >= 0

BRT <= 10

BAT > 0.15

BAT <= 1.00

Score: 75%

Page 20: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

20

Mode selection policy: Choose the mode with the highest percentage of matching properties.

Mode Selection

Brightness == 8

Battery == 0.10

DCPower == true

CurrentProgramSnapshot

StandardMode

BRT >= 0

BRT <= 10

BAT > 0.15

BAT <= 1.00

Score: 75% Score: 60%

BRT >= 0

BRT <= 4

BAT > 0.00

BAT <= 0.15

DC == false

PowerSaverMode

Page 21: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

21

Mode selection policy: Choose the mode with the highest percentage of matching properties.

Mode Selection

Brightness == 8

Battery == 0.10

DCPower == true

SleepMode

Score: 66%

StandardMode

BRT >= 0

BRT <= 10

BAT > 0.15

BAT <= 1.00

Score: 75% Score: 60%

BRT >= 0

BRT <= 4

BAT > 0.00

BAT <= 0.15

DC == false

BRT == 0

BAT > 0.00

BAT <= 1.00

PowerSaverMode

CurrentProgramSnapshot

Page 22: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

22

Mode selection policy: Choose the mode with the highest percentage of matching properties.

Mode Selection

Brightness == 8

Battery == 0.10

DCPower == true

CurrentProgramSnapshot

SleepMode

Score: 66%

StandardMode

BRT >= 0

BRT <= 10

BAT > 0.15

BAT <= 1.00

Score: 75% Score: 60%

BRT >= 0

BRT <= 4

BAT > 0.00

BAT <= 0.15

DC == false

BRT == 0

BAT > 0.00

BAT <= 1.00

PowerSaverMode

Page 23: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

23

Mode selection policy: Choose the mode with the highest percentage of matching properties.

Second Example

Brightness == 8

Battery == 0.10

DCPower == false

CurrentProgramSnapshot

Page 24: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

24

Mode selection policy: Choose the mode with the highest percentage of matching properties.

Second Example

BRT == 0

BAT > 0.00

BAT <= 1.0

Brightness == 8

Battery == 0.10

DCPower == false

CurrentProgramSnapshot

SleepMode

Score: 66%

StandardMode

BRT >= 0

BRT <= 10

BAT > 0.15

BAT <= 1.00

Score: 75% Score: 80%

BRT >= 0

BRT <= 4

BAT > 0.00

BAT <= 0.15

DC == false

PowerSaverMode

Page 25: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

25

Overview

• Program Steering Technique

• Mode Selection Example

• Program Steering Implementation

• Experimental Results

• Conclusions

Page 26: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

26

CollectTraining Data

Original Program

Models

Create ModeSelectorOriginal

Controller

Original Program

ModeSelector

DynamicAnalysis

Create NewController

NewController

NewController

Page 27: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

27

Training

• Train on successful runs– Passing test cases– High performing trials

• Amount of training data:– Depends on modeling technique– Cover all modes

Page 28: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

28

Dynamic Analysis

• Create one set of properties per mode• Daikon Tool

– Supply program and execute training runs– Infers properties involving inputs and outputs– Properties were true for every training run

• this.next.prev == this• currDestination is an element of visitQueue[]• n < mArray.length

http://pag.csail.mit.edu/daikon/

Page 29: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

29

CollectTraining Data

Original Program

Models

Create ModeSelectorOriginal

Controller

Original Program

ModeSelector

DynamicAnalysis

Create NewController

NewController

NewController

Page 30: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

30

Mode Selection Policy

Check which properties in the models are true in the current program state.

For each mode, calculate a similarity score (percent of matching properties).

Choose the mode with the highest score.

Can also accept constraints, for example- Don’t select Travel Mode when destination null- Must switch to new mode after Exception

Page 31: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

31

CollectTraining Data

Original Program

Models

Create ModeSelectorOriginal

Controller

Original Program

ModeSelector

DynamicAnalysis

Create NewController

NewController

NewController

Page 32: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

32

Controller Augmentation

Call the new mode selector during:– Uncaught Exceptions– Timeouts– Default / passive mode– Randomly during mode transitions

Otherwise, the controller is unchanged

Page 33: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

33

Why Consider Mode Outputs?

• Mode selection considers all properties • Output properties measure whether mode is

behaving as expected• Provides inertia, avoids rapid switching

• Suppose brightness is stuck at 3 (damaged).– No output benefit for Standard Mode.– More reason to prefer Power Saver to Standard.

Page 34: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

34

Why Should Program Steering Improve Mode Selection?

• Eliminates programmer assumptions about what is important

• Extrapolates knowledge from successful runs• Considers all accessible information• Every program state is handled

• The technique requires no domain-specific knowledge

Page 35: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

35

What Systems Can Benefitfrom Program Steering?

• Discrete transitions between modes

• Deployed in unpredictable environments

• Multiple modes often applicable

Page 36: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

36

Overview

• Program Steering Technique

• Mode Selection Example

• Program Steering Implementation

• Experimental Results

• Conclusions

Page 37: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

37

Droid Wars Experiments

• Month-long programming competition• Teams of simulated robots are at war (27

teams total)• Robots are autonomous• Example modes found in contestant code:

Attack, defend, transport, scout enemy, relay message, gather resources

Page 38: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

38

Program Steering Upgrades

• Selected 5 teams with identifiable modes • Ran in the original contest environment• Trained on victorious matches• Modeling captured sensor data, internal state,

radio messages, time elapsed

Page 39: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

39

Upgraded Teams

The new mode selectors considered many more properties than the original mode selectors

Team NCNB Lines

of Code

Number of

Modes

Properties

Per Mode

Team04 658 9 56

Team10 1275 5 225

Team17 846 11 11

Team20 1255 11 26

Team26 1850 8 14

Page 40: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

40

Evaluation• Ran the upgraded teams in the original

environments (performed same or better)• Created 6 new environments

– Hardware failures: – Deceptive GPS:– Radio Spoofing:– Radio Jamming:– Increased Resources:– New Maps:

random rebooting

navigation unreliable

simulate replay attacks

some radio messages dropped

faster building, larger army

randomized item placement

Page 41: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

41

Examples of Environmental Effects

• Hardware Failures– Robot did not expect to reboot mid-task, far from base– Upgraded robots could deduce and complete task

• Radio Spoofing– Replay attacks resulted in unproductive team– Upgraded robots used other info for decision making

Page 42: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

42

Hardware Failures

Deceptive GPS

Program Steering Effects on Tournament Rank

Team Original Upgrade

Team04 11 5 +6

Team10 20 16 +4

Team17 15 9 +6

Team20 21 6 +15

Team26 17 13 +4

Team Original Upgrade

Team04 12 9 +3

Team10 23 8 +15

Team17 15 9 +6

Team20 22 7 +15

Team26 16 13 +3

Page 43: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

43

Original Team20

• Centralized Intelligence• Queen Robot

– Pools information from sensors and radio messages– Determines the best course of action – Issues commands to worker robots

• Worker Robot – Capable of completing several tasks– Always returns to base to await the next order

Page 44: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

44

Upgraded Team20

• Distributed Intelligence• Queen Robot (unchanged)• Worker Robot

– Capable of deciding next task without queen– Might override queen’s orders if beneficial

Page 45: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

45

Understanding the ImprovementQuestion:

What if the improvements are due to when the new controller invokes the new mode selector, not what the selector recommends?

Experiment:- Ran same new controller with a random mode selector. - Programs with random selector perform poorly.- Program steering selectors make intelligent choices

Page 46: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

46

Hardware Failures

Deceptive GPS

Comparison with Random Selector

Team Original Upgrade Random

Team04 11 5 +6 9 +2

Team10 20 16 +4 21 -1

Team17 15 9 +6 20 -5

Team20 21 6 +15 23 -2

Team26 17 13 +4 22 -5

Team Original Upgrade Random

Team04 12 9 +3 17 -5

Team10 23 8 +15 18 +5

Team17 15 9 +6 15 0

Team20 22 7 +15 21 +1

Team26 16 13 +3 20 -4

Page 47: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

47

Overall Averages

Team Upgrade Random

Team04 +4.0 +0.7

Team10 +3.8 +1.2

Team17 +4.2 -1.5

Team20 +8.8 -1.3

Team26 +1.0 -3.7

Page 48: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

48

Overview

• Program Steering Technique

• Mode Selection Example

• Program Steering Implementation

• Experimental Results

• Conclusions

Page 49: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

49

Future Work

• Use other mode selection policies– Refine property weights with machine learning– Detect anomalies using models

• Try other modeling techniques– Model each transition, not just each mode

• Automatically suggest new modes

Page 50: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

50

Conclusion

• New mode selectors generalize original mode selector via machine learning

• Technique is domain independent

• Program steering can improve adaptability because upgraded teams perform:– As well or better in old environment– Better in new environments

Page 51: 1 Improving Adaptability of Multi-Mode Systems via Program Steering Lee Lin Michael D. Ernst MIT CSAIL.

51