avm f
play

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


  1. AVM f An Open-Source Implementation of the Alternating Variable Method Gregory M. Kapfhammer Phil McMinn SSBSE 2016 October 9, 2016

  2. AVM is Everywhere Application Domains

  3. AVM is Everywhere Application Domains Workloads

  4. AVM is Everywhere Application Domains Testing Workloads

  5. AVM is Everywhere Application Domains Testing Workloads SoftwareProductLines

  6. AVM is Everywhere Application Domains Testing Workloads SoftwareProductLines AVM is used in varied domains

  7. Exploring AVM Input Vector

  8. Exploring AVM Input Vector � = ( x 1 , x 2 , . . . , x n ) x

  9. Exploring AVM Input Vector � � = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x

  10. Exploring AVM Input Vector � � = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x Objective Function

  11. Exploring AVM Input Vector � � = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x

  12. Exploring AVM Input Vector � � = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x Exploratory Moves

  13. Exploring AVM Input Vector � � = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x Exploratory Moves Positive or negative “direction”?

  14. Exploring AVM Input Vector � � = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x Pattern Moves

  15. Exploring AVM Input Vector � � = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x Pattern Moves Improve objective value?

  16. Exploring AVM Input Vector � � = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x Pattern Moves Improve objective value? Yes! pattern or No! explore

  17. Exploring AVM Input Vector � � = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x Pattern Moves Improve objective value? Yes! pattern or No! explore

  18. Exploring AVM Input Vector � � � = = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x x

  19. Exploring AVM Input Vector � � � = = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x x Exploratoryand PatternMoves

  20. Exploring AVM Input Vector � � � = = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x x Exploratoryand PatternMoves Consider all input vector variables

  21. Exploring AVM Input Vector � � � � = = = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x x x Exploratoryand PatternMoves Consider all input vector variables

  22. Exploring AVM Input Vector � � � � = = = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x x x Exploratoryand PatternMoves Revisit each x i in the input vector

  23. Exploring AVM Input Vector � � � � = = = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x x x Exploratoryand PatternMoves Restart for local optimum

  24. Exploring AVM Input Vector � � � � = = = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x x x Exploratoryand PatternMoves Continue until termination condition

  25. AVM Innovations Search Algorithms

  26. AVM Innovations Search Algorithms Geometric

  27. AVM Innovations Search Algorithms Geometric Lattice

  28. AVM Innovations Search Algorithms Geometric Lattice IteratedPattern

  29. AVM Innovations Search Algorithms Geometric Lattice IteratedPattern Better search for many landscapes

  30. AVM Innovations Search Algorithms Geometric Lattice IteratedPattern Provably faster for unimodal

  31. AVM Innovations Representations

  32. AVM Innovations Representations Decimals

  33. AVM Innovations Representations Strings Decimals

  34. AVM Innovations Representations Strings Decimals Integers

  35. AVM Innovations Representations Strings Decimals Integers Handle real-world programs

  36. Missing Features ✗ Data? ✗ Method?

  37. Missing Features ✗ Data? ✗ Method?

  38. Key Challenge Prior AVMs lack provably faster methods!

  39. Tools Using AVM Test Generation

  40. Tools Using AVM Test Generation AUSTIN

  41. Tools Using AVM Test Generation AUSTIN EvoSuite

  42. Tools Using AVM Test Generation AUSTIN EvoSuite SchemaAnalyst

  43. Tools Using AVM Test Generation AUSTIN EvoSuite SchemaAnalyst AVM is used in many tools

  44. Extracting AVM Fitness? Search?

  45. Extracting AVM Fitness? Search?

  46. Extracting AVM Fitness? Search?

  47. Key Challenge Hard to extract AVM from custom software!

  48. Rescued by AVM f

  49. Rescued by AVM f OriginalAVMplusenhance- mentsfordataandsearch

  50. Rescued by AVM f Clearimplementa- tionofcorealgorithms

  51. Rescued by AVM f Adherestotheprinciples ofobject-orienteddesign

  52. Rescued by AVM f Freeandopen-sourcesoft- warefrom avmframework.org

  53. Rescued by AVM f

  54. Rescued by AVM f NewApplicationDomain

  55. Rescued by AVM f

  56. Rescued by AVM f NewSearchAlgorithm

  57. Design of AVM f

  58. Design of AVM f Configure

  59. Design of AVM f Configure Represent

  60. Design of AVM f

  61. Design of AVM f Objective

  62. Design of AVM f Objective Report

  63. Design of AVM f

  64. Design of AVM f Seethepaperformoredesign andimplementationdetails

  65. Design of AVM f Thetool’swebsitecontains extensivedocumentation

  66. AVM f Demonstration

  67. AVM f Demonstration javaorg.avmframework. examples.Quadratic

  68. AVM f Demonstration javaorg.avmframework. examples.StringOptimization

  69. AVM f Demonstration javaorg.avmframework. examples.GenerateInputData

  70. AVM f Demonstration Input → Output StochasticBehavior

  71. AVM f Demonstration Alreadyrun: gitclone&mvnpackage

  72. AVM f ’s Contributions

  73. AVM f ’s Contributions Overcomesthe challengesofusingAVM

  74. AVM f ’s Contributions Provablyfastersearches andnewdatatypes

  75. AVM f ’s Contributions Accessibleobject-oriented andalgorithmicdesign

  76. AVM f ’s Contributions Open-sourcedownload from avmframework.org

Recommend


More recommend