AVM f An Open-Source Implementation of the Alternating Variable - - PowerPoint PPT Presentation

avm f
SMART_READER_LITE
LIVE PREVIEW

AVM f An Open-Source Implementation of the Alternating Variable - - PowerPoint PPT Presentation

AVM f An Open-Source Implementation of the Alternating Variable Method Gregory M. Kapfhammer Phil McMinn SSBSE 2016 October 9, 2016 AVM is Everywhere Application Domains AVM is Everywhere Application Domains Workloads AVM is


slide-1
SLIDE 1

AVMf

An Open-Source Implementation of the Alternating Variable Method Gregory M. Kapfhammer Phil McMinn

SSBSE 2016 October 9, 2016

slide-2
SLIDE 2

AVM is Everywhere

Application Domains

slide-3
SLIDE 3

AVM is Everywhere

Application Domains Workloads

slide-4
SLIDE 4

AVM is Everywhere

Application Domains Workloads Testing

slide-5
SLIDE 5

AVM is Everywhere

Application Domains Workloads Testing SoftwareProductLines

slide-6
SLIDE 6

AVM is Everywhere

Application Domains Workloads Testing SoftwareProductLines

AVM is used in varied domains

slide-7
SLIDE 7

Exploring AVM Input Vector

slide-8
SLIDE 8

Exploring AVM Input Vector

  • x

= (x1, x2, . . . , xn)

slide-9
SLIDE 9

Exploring AVM Input Vector

  • x

= (x1, x2, . . . , xn)

  • x

= (x1, x2, . . . , xn)

slide-10
SLIDE 10

Exploring AVM Input Vector

  • x

= (x1, x2, . . . , xn)

  • x

= (x1, x2, . . . , xn) Objective Function

slide-11
SLIDE 11

Exploring AVM Input Vector

  • x

= (x1, x2, . . . , xn)

  • x

= (x1, x2, . . . , xn)

slide-12
SLIDE 12

Exploring AVM Input Vector

  • x

= (x1, x2, . . . , xn)

  • x

= (x1, x2, . . . , xn) Exploratory Moves

slide-13
SLIDE 13

Exploring AVM Input Vector

  • x

= (x1, x2, . . . , xn)

  • x

= (x1, x2, . . . , xn) Exploratory Moves

Positive or negative “direction”?

slide-14
SLIDE 14

Exploring AVM Input Vector

  • x

= (x1, x2, . . . , xn)

  • x

= (x1, x2, . . . , xn) Pattern Moves

slide-15
SLIDE 15

Exploring AVM Input Vector

  • x

= (x1, x2, . . . , xn)

  • x

= (x1, x2, . . . , xn) Pattern Moves

Improve objective value?

slide-16
SLIDE 16

Exploring AVM Input Vector

  • x

= (x1, x2, . . . , xn)

  • x

= (x1, x2, . . . , xn) Pattern Moves

Improve objective value?

Yes! pattern or No! explore

slide-17
SLIDE 17

Exploring AVM Input Vector

  • x

= (x1, x2, . . . , xn)

  • x

= (x1, x2, . . . , xn) Pattern Moves

Improve objective value?

Yes! pattern or No! explore

slide-18
SLIDE 18

Exploring AVM Input Vector

  • x

= (x1, x2, . . . , xn)

  • x

= (x1, x2, . . . , xn)

  • x

= (x1, x2, . . . , xn)

slide-19
SLIDE 19

Exploring AVM Input Vector

  • x

= (x1, x2, . . . , xn)

  • x

= (x1, x2, . . . , xn)

  • x

= (x1, x2, . . . , xn) Exploratoryand PatternMoves

slide-20
SLIDE 20

Exploring AVM Input Vector

  • x

= (x1, x2, . . . , xn)

  • x

= (x1, x2, . . . , xn)

  • x

= (x1, x2, . . . , xn) Exploratoryand PatternMoves

Consider all input vector variables

slide-21
SLIDE 21

Exploring AVM Input Vector

  • x

= (x1, x2, . . . , xn)

  • x

= (x1, x2, . . . , xn)

  • x

= (x1, x2, . . . , xn) Exploratoryand PatternMoves

Consider all input vector variables

  • x

= (x1, x2, . . . , xn)

slide-22
SLIDE 22

Exploring AVM Input Vector

  • x

= (x1, x2, . . . , xn)

  • x

= (x1, x2, . . . , xn)

  • x

= (x1, x2, . . . , xn) Exploratoryand PatternMoves

  • x

= (x1, x2, . . . , xn)

Revisit each xi in the input vector

slide-23
SLIDE 23

Exploring AVM Input Vector

  • x

= (x1, x2, . . . , xn)

  • x

= (x1, x2, . . . , xn)

  • x

= (x1, x2, . . . , xn) Exploratoryand PatternMoves

  • x

= (x1, x2, . . . , xn)

Restart for local optimum

slide-24
SLIDE 24

Exploring AVM Input Vector

  • x

= (x1, x2, . . . , xn)

  • x

= (x1, x2, . . . , xn)

  • x

= (x1, x2, . . . , xn) Exploratoryand PatternMoves

  • x

= (x1, x2, . . . , xn)

Continue until termination condition

slide-25
SLIDE 25

AVM Innovations

Search Algorithms

slide-26
SLIDE 26

AVM Innovations

Search Algorithms Geometric

slide-27
SLIDE 27

AVM Innovations

Search Algorithms Geometric Lattice

slide-28
SLIDE 28

AVM Innovations

Search Algorithms Geometric Lattice IteratedPattern

slide-29
SLIDE 29

AVM Innovations

Search Algorithms Geometric Lattice IteratedPattern

Better search for many landscapes

slide-30
SLIDE 30

AVM Innovations

Search Algorithms Geometric Lattice IteratedPattern

Provably faster for unimodal

slide-31
SLIDE 31

AVM Innovations

Representations

slide-32
SLIDE 32

AVM Innovations

Representations Decimals

slide-33
SLIDE 33

AVM Innovations

Representations Decimals Strings

slide-34
SLIDE 34

AVM Innovations

Representations Decimals Strings Integers

slide-35
SLIDE 35

AVM Innovations

Representations Decimals Strings Integers

Handle real-world programs

slide-36
SLIDE 36

Missing Features

✗Data? ✗Method?

slide-37
SLIDE 37

Missing Features

✗Data? ✗Method?

slide-38
SLIDE 38

Key Challenge

Prior AVMs lack provably faster methods!

slide-39
SLIDE 39

Tools Using AVM

Test Generation

slide-40
SLIDE 40

Tools Using AVM

Test Generation AUSTIN

slide-41
SLIDE 41

Tools Using AVM

Test Generation AUSTIN EvoSuite

slide-42
SLIDE 42

Tools Using AVM

Test Generation AUSTIN EvoSuite SchemaAnalyst

slide-43
SLIDE 43

Tools Using AVM

Test Generation AUSTIN EvoSuite SchemaAnalyst

AVM is used in many tools

slide-44
SLIDE 44

Extracting AVM

Fitness? Search?

slide-45
SLIDE 45

Extracting AVM

Fitness? Search?

slide-46
SLIDE 46

Extracting AVM

Fitness? Search?

slide-47
SLIDE 47

Key Challenge

Hard to extract AVM from custom software!

slide-48
SLIDE 48

Rescued by AVMf

slide-49
SLIDE 49

Rescued by AVMf

OriginalAVMplusenhance- mentsfordataandsearch

slide-50
SLIDE 50

Rescued by AVMf

Clearimplementa- tionofcorealgorithms

slide-51
SLIDE 51

Rescued by AVMf

Adherestotheprinciples

  • fobject-orienteddesign
slide-52
SLIDE 52

Rescued by AVMf

Freeandopen-sourcesoft- warefromavmframework.org

slide-53
SLIDE 53

Rescued by AVMf

slide-54
SLIDE 54

Rescued by AVMf

NewApplicationDomain

slide-55
SLIDE 55

Rescued by AVMf

slide-56
SLIDE 56

Rescued by AVMf

NewSearchAlgorithm

slide-57
SLIDE 57

Design of AVMf

slide-58
SLIDE 58

Design of AVMf

Configure

slide-59
SLIDE 59

Design of AVMf

Configure Represent

slide-60
SLIDE 60

Design of AVMf

slide-61
SLIDE 61

Design of AVMf

Objective

slide-62
SLIDE 62

Design of AVMf

Objective Report

slide-63
SLIDE 63

Design of AVMf

slide-64
SLIDE 64

Design of AVMf

Seethepaperformoredesign andimplementationdetails

slide-65
SLIDE 65

Design of AVMf

Thetool’swebsitecontains extensivedocumentation

slide-66
SLIDE 66

AVMf Demonstration

slide-67
SLIDE 67

AVMf Demonstration

javaorg.avmframework. examples.Quadratic

slide-68
SLIDE 68

AVMf Demonstration

javaorg.avmframework. examples.StringOptimization

slide-69
SLIDE 69

AVMf Demonstration

javaorg.avmframework. examples.GenerateInputData

slide-70
SLIDE 70

AVMf Demonstration

Input→Output StochasticBehavior

slide-71
SLIDE 71

AVMf Demonstration

Alreadyrun: gitclone&mvnpackage

slide-72
SLIDE 72

AVMf’s Contributions

slide-73
SLIDE 73

AVMf’s Contributions

Overcomesthe challengesofusingAVM

slide-74
SLIDE 74

AVMf’s Contributions

Provablyfastersearches andnewdatatypes

slide-75
SLIDE 75

AVMf’s Contributions

Accessibleobject-oriented andalgorithmicdesign

slide-76
SLIDE 76

AVMf’s Contributions

Open-sourcedownload fromavmframework.org