tao: turing test as objective function

30
26 May 2013, RAISE Workshop TAOism Shin Yoo/Centre for Research on Evolution Search and Testing, UCL, UK

Upload: shin-yoo

Post on 30-Nov-2014

738 views

Category:

Technology


0 download

DESCRIPTION

A vision statement, presented at RAISE 2013 (Realising Synergy between AI and Software Engineering)

TRANSCRIPT

Page 1: TAO: Turing test As Objective function

26 May 2013, RAISE Workshop

TAOismShin Yoo/Centre for Research on Evolution Search and Testing, UCL, UK

Page 2: TAO: Turing test As Objective function

My World

Page 3: TAO: Turing test As Objective function

My World

SoftwareEngineering

Page 4: TAO: Turing test As Objective function

My World

Meta-heuristicOptimisation

SoftwareEngineering

Page 5: TAO: Turing test As Objective function

My World

SBSEMeta-heuristicOptimisation

SoftwareEngineering

Page 6: TAO: Turing test As Objective function

My World

SBSEMeta-heuristicOptimisation

SoftwareEngineering

SBSE = Representation + Objective Function + Optimisation

Page 7: TAO: Turing test As Objective function

Test Data Generation Software Modularisation

Page 8: TAO: Turing test As Objective function

Test Data Generation

“I want the value of x to makethe following predicate true”

if(x == 3) {...}

Software Modularisation

Page 9: TAO: Turing test As Objective function

Test Data Generation

“I want the value of x to makethe following predicate true”

if(x == 3) {...}

Objective Function

f(x) = |3 - x|

Software Modularisation

Page 10: TAO: Turing test As Objective function

Test Data Generation

“I want the value of x to makethe following predicate true”

if(x == 3) {...}

Objective Function

f(x) = |3 - x|

This is concrete: the problemdefines the objective function

directly and concretely.

Software Modularisation

Page 11: TAO: Turing test As Objective function

Test Data Generation

“I want the value of x to makethe following predicate true”

if(x == 3) {...}

Objective Function

f(x) = |3 - x|

This is concrete: the problemdefines the objective function

directly and concretely.

Software Modularisation

“I want my 892 classesto be properly modularised”

(insert your ugliest classes here)

Page 12: TAO: Turing test As Objective function

Test Data Generation

“I want the value of x to makethe following predicate true”

if(x == 3) {...}

Objective Function

f(x) = |3 - x|

This is concrete: the problemdefines the objective function

directly and concretely.

Software Modularisation

“I want my 892 classesto be properly modularised”

(insert your ugliest classes here)

Objective Function

?

Page 13: TAO: Turing test As Objective function

Test Data Generation

“I want the value of x to makethe following predicate true”

if(x == 3) {...}

Objective Function

f(x) = |3 - x|

This is concrete: the problemdefines the objective function

directly and concretely.

Software Modularisation

“I want my 892 classesto be properly modularised”

(insert your ugliest classes here)

Objective FunctionMin. coupling, Max. cohesion

Page 14: TAO: Turing test As Objective function

Test Data Generation

“I want the value of x to makethe following predicate true”

if(x == 3) {...}

Objective Function

f(x) = |3 - x|

This is concrete: the problemdefines the objective function

directly and concretely.

Software Modularisation

“I want my 892 classesto be properly modularised”

(insert your ugliest classes here)

Objective Function

This is surrogate: the objective function is something we hope to

correlate with some abstract property.

Min. coupling, Max. cohesion

Page 15: TAO: Turing test As Objective function

How do we solve problems with surrogate objectives better?

Page 16: TAO: Turing test As Objective function

TAOism

Page 17: TAO: Turing test As Objective function

TAOism

Page 18: TAO: Turing test As Objective function

TAOism

Page 19: TAO: Turing test As Objective function

TAOism

Page 20: TAO: Turing test As Objective function

TAOism

Page 21: TAO: Turing test As Objective function

TAOism

Turing-test As Objective function

Page 22: TAO: Turing test As Objective function

TAO Hypothesis

✤ Surrogate objective functions are better learnt then defined.

Page 23: TAO: Turing test As Objective function

A la Brooks...

✤ Having a predefined representation of the problem (objective function) may not produce an intelligent solution

✤ It is better to use the real world (i.e. the real SE problem) as its own representational model

✤ Learner should be given a complete freedom over from which to learn the objective function

Page 24: TAO: Turing test As Objective function

New Problem Instances

Turing Test

HistoricalBest Practice

All Observables

LearntObjective

Page 25: TAO: Turing test As Objective function

TAO Challenge

Page 26: TAO: Turing test As Objective function

TAO Challenge

✤ Software engineers moan about realistic empirical evaluation

Page 27: TAO: Turing test As Objective function

TAO Challenge

✤ Software engineers moan about realistic empirical evaluation

✤ We interact with open source community very statically

Page 28: TAO: Turing test As Objective function

TAO Challenge

✤ Software engineers moan about realistic empirical evaluation

✤ We interact with open source community very statically

✤ Why don’t we just commit our AI/SBSE/$#@% generated feature/bug patch/test case/*#$%@ directly to open source projects?

Page 29: TAO: Turing test As Objective function

TAO Challenge

✤ Software engineers moan about realistic empirical evaluation

✤ We interact with open source community very statically

✤ Why don’t we just commit our AI/SBSE/$#@% generated feature/bug patch/test case/*#$%@ directly to open source projects?

✤ Will they notice? Will they condemn us, or welcome us?

Page 30: TAO: Turing test As Objective function

Summary

✤ Some SE objective functions are merely surrogates

✤ These are better learnt then defined; humans are the final judges

✤ If we are to use AI techniques to solve SE problems, our goal should be Turing Test