synthesizing number transformations from input-output examples

Post on 09-Feb-2016

47 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Synthesizing Number Transformations from Input-Output Examples. Rishabh Singh and Sumit Gulwani. Number. One of the most commonly used data type Number Formatting Every language has its own format #.00? (C#, Excel), 05.2f (Python, C) End-users. Help-forums. Help-forums. - PowerPoint PPT Presentation

TRANSCRIPT

Synthesizing Number Transformations from

Input-Output Examples Rishabh Singh and Sumit Gulwani

Number• One of the most commonly used data

type

• Number Formatting– Every language has its own format #.00? (C#, Excel), 05.2f (Python, C)– End-users

Help-forums

Help-forums

Excel Help-forums

Excel Help-forums

upper 45 or 95

Observations from Help-forums

• Input-Output Examples – Specification mechanism

• Additional inputs for removing ambiguity

Excel add-in with same interface

Talk Outline1. Number Transformation Language

2. Synthesis Algorithm

3. String & Number Language Combination

4. Synthesis Algorithm for Combination

5. Experiments

Generic Framework• Expression Language L

– Expressive and succinct

• Efficient Data structures for set of expressions– Version-space algebra

• GenerateStr – All sets of expressions from I-O example

• Intersect– Intersect two sets of expressions

Number Transformations

Number Transformation Language

Number Transformation Language

Number Transformation Language

Format String

• : minimum number of significant digits

• : maximum number of significant digits

• : number of whitespaces at end

Number Format

123.4567

123.46

123.4 123.40

(𝛼=2 , 𝛽=2,𝛾=0).NET :

Exactly 2 decimal places

Semantics

(𝛼=2 , 𝛽=2,𝛾=0)Exactly 2 decimal places

24.589 24.59

24.2 24.20

GenerateStr• Interval domains for

123.4567

123.46

(~𝛼=[0,2] ,~𝛽=[2,2] ,~𝛾=[0,2])

123.4 123.40

(~𝛼=[2,2] ,~𝛽=[2 ,∞ ] ,~𝛾=[0,0])

invariant

Intersect

(~𝛼=[0,2] ,~𝛽=[2,2] ,~𝛾=[0,2])

(~𝛼=[2,2] ,~𝛽=[2 ,∞ ] ,~𝛾=[0,0])

(~𝛼=[2,2] ,~𝛽=[2,2 ] ,~𝛾=[0,0])

Extension to Integer parts12.4567 012.46

123.4 123.40

Dec(u) ( Int(u), Frac(u))

GenerateStr(Frac(u1), Frac(u2))

GenerateStr(Int(u1)R, Int(u2)R)

Rounding Numbers

• zero of interval

• size of interval

• nearest, upper, lower

𝛿

𝑥

Round Format

11 45

46 95

(𝑧=45 ,𝛿=50 ,𝑚=↑)=Min(Roundup(A1/45, 0)*45, Roundup(A1/95,0)*95)

Round off to upper 45

GenerateStr

Not enough info. to learn precise

Intersect• Intersect((n1,n’1),(n2,n’2))

Intersect• Intersect((31,45),(86,95))

Intersect• Intersect((31,45),(86,95))

Intersect• Intersect((31,45),(86,95))

Intersect• Intersect((31,45),(86,95))

Intersect• Intersect((31,45),(86,95))

Intersect• Intersect((31,45),(86,95))

GenerateStr

𝛿∈𝐷𝑖𝑣𝑖𝑠𝑜𝑟𝑠 (1,000 ,000 )

Only need to maintain greatest value

Intersect𝛿1∈𝐷𝑖𝑣𝑖𝑠𝑜𝑟𝑠 (𝑘1 )

𝛿2∈𝐷𝑖𝑣𝑖𝑠𝑜𝑟𝑠 (𝑘2)∧

𝛿∈𝐷𝑖𝑣𝑖𝑠𝑜𝑟𝑠¿

Combining String and Number Transformations

String Language [GulwaniPOPL11]

Combined Language

Combination Examples

Synthesis Algorithm

2004.07.08

7/8/2004

1)(-5, -4)2)(-5, dot -1)3)(-5, dot 2)4)(-5, 7)5)(6, -4)6)….

Program P1 to extract 7 in input (P1, 7 ->

7)

Synthesis Algorithm

2004.07.08

7/8/2004

(P1, 7 -> 7)

Program P2 to extract 07 in input1)(dot 1, dot 2)

2)(dot 1, dot -1)3)(-6, -4)4)(-6, dot -1)5)(-6, dot 2)6)….

(P2, 07 -> 7)

GenerateStr

2004.07.08

7/8/2004(P1, 7 -> 7)(P2, 07 -> 7)

GenerateStr

2004.07.08

7/8/2004(P3, 8 -> 8)(P4, 08 -> 8)

Constructing the DAG

071/283/425060748

0 1 2 3 4

567

(P1, 7 -> 7)

(P2, 07 -> 7)

8

Intersection• DAG intersection

• Edge-wise program intersection

Experiments

Benchmarks• 50 benchmark problems– Help forums– Excel product team

Number of I/O examples

1 2 30

5

10

15

20

25

30

35

Number of Input-Output Ex-amples

Num

ber

of B

ench

mar

ks

Performance

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 490

0.5

1

1.5

2

2.5

3

3.5

Benchmarks

Run

ning

Tim

e (i

n se

cond

s)

Related work• String Transformations [Gulwani

POPL11]

• Table Transformations [Singh,Gulwani VLDB12]

• Spreadsheet Data Manipulation using Examples[Gulwani, Harris, Singh CACM 2012]

Conclusion• Number Transformation Language– Synthesis algorithm

• String + Number Transformations– Combined Synthesis algorithm

Thanks!

 End-Users

Algorithm Designers

Software Developers

CAV

Large potential

Questions & Comments

Backup slides

Number Format

123.4567

123.46

123.4 123.4

(𝛼=0 , 𝛽=2 ,𝛾=0).NET :

Number Format

123.4567

123.46

123.4 123.4_

(𝛼=0 , 𝛽=2 ,𝛾=2).NET :

a bc de f

g hi jk l

Help-forums

Number Format

123.4567

123.46

123.4 123.4

(𝛼=0 , 𝛽=2 ,𝛾=0).NET :

At most 2 decimal places

Number Format

123.4567

123.46

123.4 123.4_

(𝛼=0 , 𝛽=2 ,𝛾=2).NET :

Exactly 2 decimal places with space

top related