SlideShare a Scribd company logo
© 2010 IBM Corporation
®
Some “Do”s and “Don't”s of 
Benchmarking
Paul Shaw, Program Manager, CP product development, IBM.
paul.shaw@fr.ibm.com
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
2
© 2010 IBM Corporation
Optimization at IBM
 IBM Research has a tradition of optimization
– Probably most recently for COIN­OR
 ILOG was fully transferred to IBM just under one year ago
– Brought new optimization products to IBM
– Since 4th
 of June, IBM sells “CPLEX Optimization Studio”
• Comprises CPLEX, CP Optimizer, OPL
– As well as ILOG CP (the older CP products Solver, Scheduler, Dispatcher)
 Academic Initiative
– Full CPLEX Optimization Studio will be free for academics
• https://www.ibm.com/developerworks/university/academicinitiative
• https://www.ibm.com/developerworks/university/support/faqs.html
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
3
© 2010 IBM Corporation
CP Optimizer
 CP Optimizer is a constraint programming engine concentrating on
– Combinatorial optimization problems
– Scheduling problems
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
4
© 2010 IBM Corporation
CP Optimizer
 CP Optimizer is a constraint programming engine concentrating on
– Combinatorial optimization problems
– Scheduling problems
 CP Optimizer has a robust built­in search engine (sometimes referred 
to as autonomous search)
– Although the search can be fully programmed if desired
– Concise hints on search can also be given
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
5
© 2010 IBM Corporation
CP Optimizer
 CP Optimizer is a constraint programming engine concentrating on
– Combinatorial optimization problems
– Scheduling problems
 CP Optimizer has a robust built­in search engine (sometimes referred 
to as autonomous search)
– Although the search can be fully programmed if desired
– Concise hints on search can also be given
 Our team concentrates on:
– Making CP Optimizer solve more quickly
– Making CP Optimizer easier to use
– Adding new modelling or solving features
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
6
© 2010 IBM Corporation
About this talk, or, “sorry for stealing the idea”
 Fifteen years ago
– I worked in a research group called APES
• Algorithms, Problems, Empirical Studies
– We studied algorithms and did a lot of experiments (or if you like, 
benchmarking)
– One report we wrote was called “How Not To Do It”
• Informally chronicled some misadventures in the world of 
experiments on NP­hard problems
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
7
© 2010 IBM Corporation
About this talk, or, “sorry for stealing the idea”
 Fifteen years ago
– I worked in a research group called APES
• Algorithms, Problems, Empirical Studies
– We studied algorithms and did a lot of experiments (or if you like, 
benchmarking)
– One report we wrote was called “How Not To Do It”
• Informally chronicled some misadventures in the world of 
experiments on NP­hard problems
 Today
– I tried (without peeking at the report) to remember some of the 
themes and to see how they applied to me now
– A couple of themes are new
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
8
© 2010 IBM Corporation
Scenario
 You are are PhD student working on a research area proposed to you by your 
thesis advisor.  You've thought of a cool new algorithm for a well­known 
problem class.  Eager to see how it performs, you code it up and run a load of 
experiments on classic benchmarks over the weekend.
 You check on the results on Monday morning. Tremendous!  You close several 
open problems by proving the optimality of some known upper bounds.
 Do you:
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
9
© 2010 IBM Corporation
Scenario
 You are are PhD student working on a research area proposed to you by your 
thesis advisor.  You've thought of a cool new algorithm for a well­known 
problem class.  Eager to see how it performs, you code it up and run a load of 
experiments on classic benchmarks over the weekend.
 You check on the results on Monday morning. Tremendous!  You close several 
open problems by proving the optimality of some known upper bounds.
 Do you:
– A) Call your thesis advisor to thank them for being so insightful in proposing 
the area.  He or she surely deserves at least half the credit.
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
10
© 2010 IBM Corporation
Scenario
 You are are PhD student working on a research area proposed to you by your 
thesis advisor.  You've thought of a cool new algorithm for a well­known 
problem class.  Eager to see how it performs, you code it up and run a load of 
experiments on classic benchmarks over the weekend.
 You check on the results on Monday morning. Tremendous!  You close several 
open problems by proving the optimality of some known upper bounds.
 Do you:
– A) Call your thesis advisor to thank them for being so insightful in proposing 
the area.  He or she surely deserves at least half the credit.
– B) Allow yourself a little smile – you always knew your idea was brilliant.
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
11
© 2010 IBM Corporation
Scenario
 You are are PhD student working on a research area proposed to you by your 
thesis advisor.  You've thought of a cool new algorithm for a well­known 
problem class.  Eager to see how it performs, you code it up and run a load of 
experiments on classic benchmarks over the weekend.
 You check on the results on Monday morning. Tremendous!  You close several 
open problems by proving the optimality of some known upper bounds.
 Do you:
– A) Call your thesis advisor to thank them for being so insightful in proposing 
the area.  He or she surely deserves at least half the credit.
– B) Allow yourself a little smile – you always knew your idea was brilliant.
– C) Call up your friends to go out and celebrate – the thesis is in the bag.
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
12
© 2010 IBM Corporation
Scenario
 You are are PhD student working on a research area proposed to you by your 
thesis advisor.  You've thought of a cool new algorithm for a well­known 
problem class.  Eager to see how it performs, you code it up and run a load of 
experiments on classic benchmarks over the weekend.
 You check on the results on Monday morning. Tremendous!  You close several 
open problems by proving the optimality of some known upper bounds.
 Do you:
– A) Call your thesis advisor to thank them for being so insightful in proposing 
the area.  He or she surely deserves at least half the credit.
– B) Allow yourself a little smile – you always knew your idea was brilliant.
– C) Call up your friends to go out and celebrate – the thesis is in the bag.
– D) Start scanning your code for bugs.
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
13
© 2010 IBM Corporation
DON'T TRUST YOURSELF
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
14
© 2010 IBM Corporation
DON'T TRUST YOURSELF
 DO have healthy skepticism
– DON'T believe that someone else will volunteer to find errors in your work
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
15
© 2010 IBM Corporation
DON'T TRUST YOURSELF
 DO have healthy skepticism
– DON'T believe that someone else will volunteer to find errors in your work
 DO check everything twice, then check it again (including the problem spec.)
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
16
© 2010 IBM Corporation
DON'T TRUST YOURSELF
 DO have healthy skepticism
– DON'T believe that someone else will volunteer to find errors in your work
 DO check everything twice, then check it again (including the problem spec.)
 DON'T  do it alone
– DO get help in your group to check your logic, code and algorithm
– DO use tools to detect errors, but DO write simple code
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
17
© 2010 IBM Corporation
DON'T TRUST YOURSELF
 DO have healthy skepticism
– DON'T believe that someone else will volunteer to find errors in your work
 DO check everything twice, then check it again (including the problem spec.)
 DON'T  do it alone
– DO get help in your group to check your logic, code and algorithm
– DO use tools to detect errors, but DO write simple code
 DO write a solution checker where appropriate (or better, use someone else's)
– DO resist the temptation to use the same data and solution reader
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
18
© 2010 IBM Corporation
DON'T TRUST YOURSELF
 DO have healthy skepticism
– DON'T believe that someone else will volunteer to find errors in your work
 DO check everything twice, then check it again (including the problem spec.)
 DON'T  do it alone
– DO get help in your group to check your logic, code and algorithm
– DO use tools to detect errors, but DO write simple code
 DO write a solution checker where appropriate (or better, use someone else's)
– DO resist the temptation to use the same data and solution reader
 DO write a second implementation
 DO construct a proof
 ...
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
19
© 2010 IBM Corporation
DON'T TRUST YOURSELF: A study
 Solve the optimization version of the MAX­CUT problem on a cubic graph
– Best known specialized algorithm has complexity O*(2     )
 We wanted to try CP Optimizer to see how it compared empirically
m/6
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
20
© 2010 IBM Corporation
DON'T TRUST YOURSELF: A study
 Solve the optimization version of the MAX­CUT problem on a cubic graph
– Best known specialized algorithm has complexity O*(2     )
 We wanted to try CP Optimizer to see how it compared empirically
 Results:
– Obvious model was terrible
• from memory, growth was around 2
m/6
m/2
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
21
© 2010 IBM Corporation
DON'T TRUST YOURSELF: A study
 Solve the optimization version of the MAX­CUT problem on a cubic graph
– Best known specialized algorithm has complexity O*(2     )
 We wanted to try CP Optimizer to see how it compared empirically
 Results:
– Obvious model was terrible
• from memory, growth was around 2
– Second model included a dominance rule to cut non­optimal solutions
• better: growth around 2
m/6
m/2
m/5
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
22
© 2010 IBM Corporation
DON'T TRUST YOURSELF: A study
 Solve the optimization version of the MAX­CUT problem on a cubic graph
– Best known specialized algorithm has complexity O*(2     )
 We wanted to try CP Optimizer to see how it compared empirically
 Results:
– Obvious model was terrible
• from memory, growth was around 2
– Second model included a dominance rule to cut non­optimal solutions
• better: growth around 2
– Third model included a more sophisticated dominance rule
• much faster:  growth was around m
m/6
3
m/2
m/5
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
23
© 2010 IBM Corporation
DON'T TRUST YOURSELF: A study
 Solve the optimization version of the MAX­CUT problem on a cubic graph
– Best known specialized algorithm has complexity O*(2     )
 We wanted to try CP Optimizer to see how it compared empirically
 Results:
– Obvious model was terrible
• from memory, growth was around 2
– Second model included a dominance rule to cut non­optimal solutions
• better: growth around 2
– Third model included a more sophisticated dominance rule
• much faster:  growth was around m
  So, I started looking for bugs in the model
m/6
3
m/2
m/5
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
24
© 2010 IBM Corporation
DON'T TRUST YOURSELF: How we debugged that one
 Three facts
– I suspected the third model was pruning too many branches
– I had two other simpler models
– I had a method for generating a nearly unlimited number of problems
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
25
© 2010 IBM Corporation
DON'T TRUST YOURSELF: How we debugged that one
 Three facts
– I suspected the third model was pruning too many branches
– I had two other simpler models
– I had a method for generating a nearly unlimited number of problems
 Generate large numbers of small problems until the more sophisticated 
algorithm produces a different answer from the simple one
– Keep the problems as small as possible as some detailed analysis is needed 
afterwards
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
26
© 2010 IBM Corporation
DON'T TRUST YOURSELF: How we debugged that one
 Three facts
– I suspected the third model was pruning too many branches
– I had two other simpler models
– I had a method for generating a nearly unlimited number of problems
 Generate large numbers of small problems until the more sophisticated 
algorithm produces a different answer from the simple one
– Keep the problems as small as possible as some detailed analysis is needed 
afterwards
 DO have a more trusted implementation
– Use it as a sanity check 
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
27
© 2010 IBM Corporation
DON'T TRUST YOURSELF: How we debugged that one
 Three facts
– I suspected the third model was pruning too many branches
– I had two other simpler models
– I had a method for generating a nearly unlimited number of problems
 Generate large numbers of small problems until the more sophisticated 
algorithm produces a different answer from the simple one
– Keep the problems as small as possible as some detailed analysis is needed 
afterwards
 DO have a more trusted implementation
– Use it as a sanity check 
 DO look for counter examples (automatically, or by hand)
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
28
© 2010 IBM Corporation
DON'T TRUST YOURSELF: How we debugged that one
 Three facts
– I suspected the third model was pruning too many branches
– I had two other simpler models
– I had a method for generating a nearly unlimited number of problems
 Generate large numbers of small problems until the more sophisticated 
algorithm produces a different answer from the simple one
– Keep the problems as small as possible as some detailed analysis is needed 
afterwards
 DO have a more trusted implementation
– Use it as a sanity check 
 DO look for counter examples (automatically, or by hand)
 DO test as widely as possible
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
29
© 2010 IBM Corporation
Progressive Party Problem
 Organize a party in a marina on a number of host boats
– Each boat has a capacity (people) and a crew of a certain size
– The party is organized into six (or more periods)
– Host crews stay on their host boat – each guest crew visits a new host 
boat at each period
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
30
© 2010 IBM Corporation
Progressive Party Problem
 Organize a party in a marina on a number of host boats
– Each boat has a capacity (people) and a crew of a certain size
– The party is organized into six (or more periods)
– Host crews stay on their host boat – each guest crew visits a new host 
boat at each period
 Constraints
– The total size of host and guest crews on a boat is less than boat 
capacity
– Each guest crew must visit a different boat in each period
– No two guest crews can meet more than once
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
31
© 2010 IBM Corporation
Progressive Party Problem
 Organize a party in a marina on a number of host boats
– Each boat has a capacity (people) and a crew of a certain size
– The party is organized into six (or more periods)
– Host crews stay on their host boat – each guest crew visits a new host 
boat at each period
 Constraints
– The total size of host and guest crews on a boat is less than boat 
capacity
– Each guest crew must visit a different boat in each period
– No two guest crews can meet more than once
 Objective: minimize the number of host boats
– Decide on the host boats and a visit schedule for the guest crews
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
32
© 2010 IBM Corporation
Progressive Party Problem
 The progressive part problems can be considered to have two aspects:
– (a) Decide on the set of host boats
– (b) Given the host boats, decide on a schedule for the guest crews
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
33
© 2010 IBM Corporation
Progressive Party Problem
 The progressive part problems can be considered to have two aspects:
– (a) Decide on the set of host boats
– (b) Given the host boats, decide on a schedule for the guest crews
 To simplify the problem, solution techniques typically divide the two 
problems, with normally (a) being solved by hand (e.g. using the biggest 
boats)
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
34
© 2010 IBM Corporation
Progressive Party Problem
 The progressive part problems can be considered to have two aspects:
– (a) Decide on the set of host boats
– (b) Given the host boats, decide on a schedule for the guest crews
 To simplify the problem, solution techniques typically divide the two 
problems, with normally (a) being solved by hand (e.g. using the biggest 
boats)
 I was pretty ignorant of the literature and just coded up the whole model 
and used CP Optimizer's search
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
35
© 2010 IBM Corporation
Progressive Party Problem
 ! ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
 ! Minimization problem ­ 1408 variables, 15805 constraints
 ! Preprocessing : 42 extractables eliminated, 42 constraints generated
 ! LogPeriod            = 10000
 ! Initial process time : 0.10s (0.08s extraction + 0.02s propagation)
 !  . Log search space  : 4408.7 (before), 4235.2 (after)
 !  . Memory usage      : 4.9 Mb (before), 7.2 Mb (after)
 !  . Variables fixed   : 42
 ! ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
 !   Branches  Non­fixed                Branch decision                   Best
        10000         37                 M13,30  =    3
 *      12605      1.57s                  M0,20  =    3                     21
 *      18049      2.36s                  M0,20  =    0                     20
        20000        321                    H13  =    0                     20
 *      20767      2.72s                 M21,27  =    1                     19
 *      21494      2.80s                 M21,27  =    1                     18
 *      22756      2.99s                 M13,41  =    0                     17
 *      27350      3.47s                 M23,38  =    1                     16
        30000        385                  T0,31  =    7                     16
 *      34262      4.56s                 M21,27  =    1                     15
        40000        411                  T3,30  =   32  F                  15
        50000        399                 M16,38  =    5                     15
 *      50492      7.43s                  M0,15  =    1                     14
        60000        409                   M1,8 !=    1                     14
        70000        462                 M11,36  =    5                     14
 *      75638     11.54s                  M0,15  =    1                     13
 ! Search terminated, replaying optimal solution
 ! ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
 ! Solution status        : Terminated normally, optimal found (tol. = 0)
 ! Number of branches     : 75638
 ! Number of fails        : 17715
 ! Total memory usage     : 11.9 Mb (10.3 Mb CP Optimizer + 1.6 Mb Concert)
 ! Time spent in solve    : 11.55s (11.47s engine + 0.08s extraction)
 ! Search speed (br. / s) : 6594.4
 ! ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
36
© 2010 IBM Corporation
Progressive Party Problem: identify decision variables
 ! ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
 ! Minimization problem ­ 1408 variables, 15805 constraints, 1 phase
 ! Preprocessing : 42 extractables eliminated, 42 constraints generated
 ! LogPeriod            = 10000
 ! Initial process time : 0.13s (0.11s extraction + 0.02s propagation)
 !  . Log search space  : 4408.7 (before), 4235.2 (after)
 !  . Memory usage      : 4.9 Mb (before), 7.2 Mb (after)
 !  . Variables fixed   : 42
 ! ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
 !   Branches  Non­fixed                Branch decision                   Best
 *       2887      0.48s                  M4,19  =    5                     20
 *       4578      0.66s                   M6,7  =    1                     16
 *       6625      0.91s                 M22,23  =    0                     14
        10000        714                  T3,28  =   13  F                  14
 *      11592      1.53s                  M6,13  =    2                     13
 ! Search terminated, replaying optimal solution
 ! ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
 ! Solution status        : Terminated normally, optimal found (tol. = 0)
 ! Number of branches     : 11592
 ! Number of fails        : 3227
 ! Total memory usage     : 11.1 Mb (9.5 Mb CP Optimizer + 1.6 Mb Concert)
 ! Time spent in solve    : 1.54s (1.43s engine + 0.11s extraction)
 ! Search speed (br. / s) : 8106.3
 ! ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
37
© 2010 IBM Corporation
DON'T FORGET TO TRY THE OBVIOUS
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
38
© 2010 IBM Corporation
DON'T FORGET TO TRY THE OBVIOUS
 It doesn't take long
– So, even if it works poorly, you did not waste too much time
– Gives you a simple “trusted” implementation that you can test against
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
39
© 2010 IBM Corporation
DON'T FORGET TO TRY THE OBVIOUS
 It doesn't take long
– So, even if it works poorly, you did not waste too much time
– Gives you a simple “trusted” implementation that you can test against
 It might work well.  If the obvious approach has not worked for others:
– The reasons it did not work might not exist today
– For the PPP, CP Optimizer is using
• A global packing constraint
• A search process which uses restarts and learning
– Which were not available / used in original studies
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
40
© 2010 IBM Corporation
DON'T FORGET TO TRY THE OBVIOUS
 It doesn't take long
– So, even if it works poorly, you did not waste too much time
– Gives you a simple “trusted” implementation that you can test against
 It might work well.  If the obvious approach has not worked for others:
– The reasons it did not work might not exist today
– For the PPP, CP Optimizer is using
• A global packing constraint
• A search process which uses restarts and learning
– Which were not available / used in original studies
 In any case, if the obvious approach is a success
– DON'T TRUST YOURSELF – check your work!
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
41
© 2010 IBM Corporation
Magic Squares
7 18 25 4 11
5 8 19 12 21
16 24 13 9 3
22 14 2 17 10
15 1 6 23 20
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
42
© 2010 IBM Corporation
Magic Squares
7 18 25 4 11
5 8 19 12 21
16 24 13 9 3
22 14 2 17 10
15 1 6 23 20 65
65
65
65
65
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
43
© 2010 IBM Corporation
Magic Squares
7 18 25 4 11
5 8 19 12 21
16 24 13 9 3
22 14 2 17 10
15 1 6 23 20
65
65
65 65 65
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
44
© 2010 IBM Corporation
Magic Squares
7 18 25 4 11
5 8 19 12 21
16 24 13 9 3
22 14 2 17 10
15 1 6 23 20
65
65
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
45
© 2010 IBM Corporation
Diagonally Ordered Magic Squares
7 18 25 4 11
5 8 19 12 21
16 24 13 9 3
22 14 2 17 10
15 1 6 23 20
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
46
© 2010 IBM Corporation
Diagonally Ordered Magic Squares
7 18 25 4 11
5 8 19 12 21
16 24 13 9 3
22 14 2 17 10
15 1 6 23 20
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
47
© 2010 IBM Corporation
Diagonally Ordered Magic Squares
 “Streamlined Constraint Reasoning”
– Gomes and Sellmann, CP 2004
– Uses restarts and “streamlining” (search space restriction)
 “Disco Novo Gogo”
– Sellmann and Ansotegui, AAAI 2006
– Uses restarts, randomized variable ordering and learning on the 
value selection heuristic
 I wanted to see how CP Optimizer's search compared
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
48
© 2010 IBM Corporation
Diagonally Ordered Magic Squares
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
49
© 2010 IBM Corporation
Diagonally Ordered Magic Squares
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
50
© 2010 IBM Corporation
Diagonally Ordered Magic Squares
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
51
© 2010 IBM Corporation
Streamlining: Dumbledore Squares
 Each row and column usually has an even spread of numbers
7 18 25 4 11
5 8 19 12 21
16 24 13 9 3
22 14 2 17 10
15 1 6 23 20
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
52
© 2010 IBM Corporation
Streamlining: Dumbledore Squares
 Force each row and column to have a number from each “class”
7 18 25 4 11
5 8 19 12 21
16 24 13 9 3
22 14 2 17 10
15 1 6 23 20
B D E A C
A B D C E
D E C B A
E C A D B
C A B E D
(A) 1­5          (B) 6­10             (C) 11­15            (D) 16­20             (E) 21­25 
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
53
© 2010 IBM Corporation
Streamlining: Dumbledore Squares
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
54
© 2010 IBM Corporation
Streamlining: Dumbledore Squares
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
55
© 2010 IBM Corporation
Streamlining: Dumbledore Squares
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
56
© 2010 IBM Corporation
DO FAVOUR GRAPHS OVER TABLES
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
57
© 2010 IBM Corporation
DO FAVOUR GRAPHS OVER TABLES
 DO produce scaling results when you can
– These give excellent information about how different methods compare
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
58
© 2010 IBM Corporation
DO FAVOUR GRAPHS OVER TABLES
 DO produce scaling results when you can
– These give excellent information about how different methods compare
 DO use scatter plots
– When results cannot easily be aggregated
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
59
© 2010 IBM Corporation
DO FAVOUR GRAPHS OVER TABLES
 DO produce scaling results when you can
– These give excellent information about how different methods compare
 DO use scatter plots
– When results cannot easily be aggregated
 DO convert tables you find in the literature to graphs
– DON'T use tables just because previous papers did!
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
60
© 2010 IBM Corporation
Large neighborhood search
 Hybrid of local and constructive search which looks like local search 
from a high level, but uses constructive search to make moves
– Each move removes part of the current solution
– Rebuilds it using a constructive method (usually limited in backtracks)
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
61
© 2010 IBM Corporation
Large neighborhood search
 Hybrid of local and constructive search which looks like local search 
from a high level, but uses constructive search to make moves
– Each move removes part of the current solution
– Rebuilds it using a constructive method (usually limited in backtracks)
 I applied LNS to routing problems, and tested on the well­known 
“Solomon” instances of capacitated vehicle routing problems with time 
windows
– This benchmark suite of 56 problems has been used in hundreds of 
papers on vehicle routing.
– My LNS method removed some customers from routes, then re­
inserted them using a backtracking technique and ordering heuristics
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
62
© 2010 IBM Corporation
Large neighborhood search
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
63
© 2010 IBM Corporation
Large neighborhood search
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
64
© 2010 IBM Corporation
Large neighborhood search
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
65
© 2010 IBM Corporation
Large neighborhood search
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
66
© 2010 IBM Corporation
Solomon problem instances (100 customers)
 Objective is to
– As a primary objective, minimize the number of vehicles used
– As a secondary objective, minimize the distance travelled
– obj = M * vehicles + distance
 R1
 C1
 R2
 C2
RC1 RC2
5­10 customers
per route
25­50 customers
per route
Random
positions
Clustered
positions
Mixed
Positions
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
67
© 2010 IBM Corporation
Typical situation on long­route problems (series 2)
 For the most part, LNS will reduce the distance and not the vehicles
– To reduce the number of vehicles, LNS must remove and successfully 
 reinsert all customers on a single vehicle
– When average customers on a route >=12, this gets difficult
Bad for reducing vehicles Good for reducing vehicles
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
68
© 2010 IBM Corporation
Solomon problem instances (100 customers)
 Objective is to
– As a primary objective, minimize the number of vehicles used
– As a secondary objective, minimize the distance travelled
– obj = M * vehicles + distance
 R1
 C1
 R2
 C2
RC1 RC2
5­10 customers
per route
25­50 customers
per route
Random
positions
Clustered
positions
Mixed
Positions
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
69
© 2010 IBM Corporation
Solomon problem instances (100 customers)
 Objective is to
– As a primary objective, minimize the number of vehicles used
– As a secondary objective, minimize the distance travelled
– obj = M * vehicles + distance
 R1
 C1
 R2
 C2
RC1 RC2
5­10 customers
per route
25­50 customers
per route
Random
positions
Clustered
positions
Mixed
Positions
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
70
© 2010 IBM Corporation
DON'T be a slave to benchmark suites
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
71
© 2010 IBM Corporation
DON'T be a slave to benchmark suites
 DON'T feel that your algorithm has to be good everywhere
– But DO know how it performs in as many places as possible
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
72
© 2010 IBM Corporation
DON'T be a slave to benchmark suites
 DON'T feel that your algorithm has to be good everywhere
– But DO know how it performs in as many places as possible
 DO report your failures
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
73
© 2010 IBM Corporation
DON'T be a slave to benchmark suites
 DON'T feel that your algorithm has to be good everywhere
– But DO know how it performs in as many places as possible
 DO report your failures
 If you need to, DO create new benchmark instances,
– But DO be credible
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
74
© 2010 IBM Corporation
Heuristics
 Variable and value ordering heuristics are ubiquitous
 Typical implementation of first fail:
best = ­1;
bestSize = infinity;
for i in 1..n
  if (not fixed(x[i]) and domain­size(x[i]) < bestSize)
    best = i
    bestSize = domain­size(x[i])
  end if
end for
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
75
© 2010 IBM Corporation
Heuristics
 Variable and value ordering heuristics are ubiquitous
 Typical implementation of first fail:
best = ­1;
bestSize = infinity;
for i in 1..n
  if (not fixed(x[i]) and domain­size(x[i]) < bestSize)
    best = i
    bestSize = domain­size(x[i])
  end if
end for
– This code contains an implicit tie­breaking rule:
• Lower indexed variables are chosen over higher indexed ones
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
76
© 2010 IBM Corporation
Heuristics: Magic squares
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
77
© 2010 IBM Corporation
Heuristics: Magic squares
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
78
© 2010 IBM Corporation
DO think about tie breaking
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
79
© 2010 IBM Corporation
DO think about tie breaking
 DON'T tie break on arbitrary data, like an index
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
80
© 2010 IBM Corporation
DO think about tie breaking
 DON'T tie break on arbitrary data, like an index
 DON'T wrongly attribute performance to the major selection rule
– Test the minor selection rules as well
IBM Software Group | Lotus software
IBM Software Group | WebSphere software
81
© 2010 IBM Corporation
Summary
 DON'T trust yourself
– If it looks too good to be true, then it probably is
 DON'T forget to try the obvious
– Your “obvious” might not be the same as others'
– The obvious might work now, when it didn't before
 DO use graphs over tables
– Will make you ask much more interesting questions
 DON'T be a slave to benchmark suites
– Be honest, report your failures
 DO think about tie­breaking
– Can have a massive impact on benchmark results

More Related Content

What's hot

New Results for the GEO-CAPE Observation Scheduling Problem
New Results for the GEO-CAPE Observation Scheduling ProblemNew Results for the GEO-CAPE Observation Scheduling Problem
New Results for the GEO-CAPE Observation Scheduling Problem
Philippe Laborie
 
Recent advances on large scheduling problems in CP Optimizer
Recent advances on large scheduling problems in CP OptimizerRecent advances on large scheduling problems in CP Optimizer
Recent advances on large scheduling problems in CP Optimizer
Philippe Laborie
 
Objective Landscapes for Constraint Programming
Objective Landscapes for Constraint ProgrammingObjective Landscapes for Constraint Programming
Objective Landscapes for Constraint Programming
Philippe Laborie
 
Industrial project and machine scheduling with Constraint Programming
Industrial project and machine scheduling with Constraint ProgrammingIndustrial project and machine scheduling with Constraint Programming
Industrial project and machine scheduling with Constraint Programming
Philippe Laborie
 
Optimization: from mathematical tools to real applications
Optimization: from mathematical tools to real applicationsOptimization: from mathematical tools to real applications
Optimization: from mathematical tools to real applications
Philippe Laborie
 
Multiclass classification using Massively Threaded Multiprocessors
Multiclass classification using Massively Threaded MultiprocessorsMulticlass classification using Massively Threaded Multiprocessors
Multiclass classification using Massively Threaded Multiprocessors
sergherrero
 
Pramod Baravkar_Resume
Pramod Baravkar_ResumePramod Baravkar_Resume
Pramod Baravkar_Resume
Pramod Baravkar
 
Business Optimizer Introduction
Business Optimizer IntroductionBusiness Optimizer Introduction
Business Optimizer Introduction
Donato Marrazzo
 

What's hot (8)

New Results for the GEO-CAPE Observation Scheduling Problem
New Results for the GEO-CAPE Observation Scheduling ProblemNew Results for the GEO-CAPE Observation Scheduling Problem
New Results for the GEO-CAPE Observation Scheduling Problem
 
Recent advances on large scheduling problems in CP Optimizer
Recent advances on large scheduling problems in CP OptimizerRecent advances on large scheduling problems in CP Optimizer
Recent advances on large scheduling problems in CP Optimizer
 
Objective Landscapes for Constraint Programming
Objective Landscapes for Constraint ProgrammingObjective Landscapes for Constraint Programming
Objective Landscapes for Constraint Programming
 
Industrial project and machine scheduling with Constraint Programming
Industrial project and machine scheduling with Constraint ProgrammingIndustrial project and machine scheduling with Constraint Programming
Industrial project and machine scheduling with Constraint Programming
 
Optimization: from mathematical tools to real applications
Optimization: from mathematical tools to real applicationsOptimization: from mathematical tools to real applications
Optimization: from mathematical tools to real applications
 
Multiclass classification using Massively Threaded Multiprocessors
Multiclass classification using Massively Threaded MultiprocessorsMulticlass classification using Massively Threaded Multiprocessors
Multiclass classification using Massively Threaded Multiprocessors
 
Pramod Baravkar_Resume
Pramod Baravkar_ResumePramod Baravkar_Resume
Pramod Baravkar_Resume
 
Business Optimizer Introduction
Business Optimizer IntroductionBusiness Optimizer Introduction
Business Optimizer Introduction
 

Similar to Some "Do"s and "Dont'"s of Benchmarking

Enterprise COBOL for z/OS, V5.1 at Innovate 2014
Enterprise COBOL for z/OS, V5.1 at Innovate 2014Enterprise COBOL for z/OS, V5.1 at Innovate 2014
Enterprise COBOL for z/OS, V5.1 at Innovate 2014
Dwayne Moore
 
Eclipse Way
Eclipse WayEclipse Way
Eclipse Way
Tomasz Zarna
 
Deploying End-to-End Deep Learning Pipelines with ONNX
Deploying End-to-End Deep Learning Pipelines with ONNXDeploying End-to-End Deep Learning Pipelines with ONNX
Deploying End-to-End Deep Learning Pipelines with ONNX
Databricks
 
Understanding DevOps
Understanding DevOpsUnderstanding DevOps
Understanding DevOps
InnoTech
 
Modular enablement
Modular enablementModular enablement
Modular enablement
Ori Pomerantz
 
Continuous Deployment for Deep Learning
Continuous Deployment for Deep LearningContinuous Deployment for Deep Learning
Continuous Deployment for Deep Learning
Databricks
 
How NBCUniversal Adopted DevOps
How NBCUniversal Adopted DevOpsHow NBCUniversal Adopted DevOps
How NBCUniversal Adopted DevOps
Sanjeev Sharma
 
Unicorns on an Aircraft Carrier: CDSummit London and Stockholm Keynote
Unicorns on an Aircraft Carrier: CDSummit London and Stockholm KeynoteUnicorns on an Aircraft Carrier: CDSummit London and Stockholm Keynote
Unicorns on an Aircraft Carrier: CDSummit London and Stockholm Keynote
Sanjeev Sharma
 
S106 using ibm urban code deploy to deliver your apps to cics
S106 using ibm urban code deploy to deliver your apps to cicsS106 using ibm urban code deploy to deliver your apps to cics
S106 using ibm urban code deploy to deliver your apps to cics
nick_garrod
 
100 blue mix days technical training
100 blue mix days technical training100 blue mix days technical training
100 blue mix days technical training
Ajit Yohannan
 
Decision Optimization - CPLEX Optimization Studio - Product Overview(2).PPTX
Decision Optimization - CPLEX Optimization Studio - Product Overview(2).PPTXDecision Optimization - CPLEX Optimization Studio - Product Overview(2).PPTX
Decision Optimization - CPLEX Optimization Studio - Product Overview(2).PPTX
SanjayKPrasad2
 
Getting started with OpenERP
Getting started with OpenERPGetting started with OpenERP
Getting started with OpenERP
Abeer AlSayed
 
Eclipse Way
Eclipse WayEclipse Way
Eclipse Way
Tomasz Zarna
 
CampDevOps keynote - DevOps: Using 'Lean' to eliminate Bottlenecks
CampDevOps keynote - DevOps: Using 'Lean' to eliminate BottlenecksCampDevOps keynote - DevOps: Using 'Lean' to eliminate Bottlenecks
CampDevOps keynote - DevOps: Using 'Lean' to eliminate Bottlenecks
Sanjeev Sharma
 
Webcast Automação Implantação de Aplicações (DevOps)
Webcast Automação Implantação de Aplicações (DevOps)Webcast Automação Implantação de Aplicações (DevOps)
Webcast Automação Implantação de Aplicações (DevOps)
Felipe Freire
 
A301 ctu madrid2016-monitoring
A301 ctu madrid2016-monitoringA301 ctu madrid2016-monitoring
A301 ctu madrid2016-monitoring
Michael Dawson
 
From COBOL to Models: an MDE framework to extract business logic out of legac...
From COBOL to Models: an MDE framework to extract business logic out of legac...From COBOL to Models: an MDE framework to extract business logic out of legac...
From COBOL to Models: an MDE framework to extract business logic out of legac...
Jordi Cabot
 
Extracting Business Rules from COBOL: A Model-Based Framework
Extracting Business Rules from COBOL: A Model-Based FrameworkExtracting Business Rules from COBOL: A Model-Based Framework
Extracting Business Rules from COBOL: A Model-Based Framework
Valerio Cosentino
 
What's new in Juno
What's new in JunoWhat's new in Juno
What's new in Juno
Tomasz Zarna
 
Who Took The Cookie From The Cookie Jar?
Who Took The Cookie From The Cookie Jar?Who Took The Cookie From The Cookie Jar?
Who Took The Cookie From The Cookie Jar?
Olivier Thomann
 

Similar to Some "Do"s and "Dont'"s of Benchmarking (20)

Enterprise COBOL for z/OS, V5.1 at Innovate 2014
Enterprise COBOL for z/OS, V5.1 at Innovate 2014Enterprise COBOL for z/OS, V5.1 at Innovate 2014
Enterprise COBOL for z/OS, V5.1 at Innovate 2014
 
Eclipse Way
Eclipse WayEclipse Way
Eclipse Way
 
Deploying End-to-End Deep Learning Pipelines with ONNX
Deploying End-to-End Deep Learning Pipelines with ONNXDeploying End-to-End Deep Learning Pipelines with ONNX
Deploying End-to-End Deep Learning Pipelines with ONNX
 
Understanding DevOps
Understanding DevOpsUnderstanding DevOps
Understanding DevOps
 
Modular enablement
Modular enablementModular enablement
Modular enablement
 
Continuous Deployment for Deep Learning
Continuous Deployment for Deep LearningContinuous Deployment for Deep Learning
Continuous Deployment for Deep Learning
 
How NBCUniversal Adopted DevOps
How NBCUniversal Adopted DevOpsHow NBCUniversal Adopted DevOps
How NBCUniversal Adopted DevOps
 
Unicorns on an Aircraft Carrier: CDSummit London and Stockholm Keynote
Unicorns on an Aircraft Carrier: CDSummit London and Stockholm KeynoteUnicorns on an Aircraft Carrier: CDSummit London and Stockholm Keynote
Unicorns on an Aircraft Carrier: CDSummit London and Stockholm Keynote
 
S106 using ibm urban code deploy to deliver your apps to cics
S106 using ibm urban code deploy to deliver your apps to cicsS106 using ibm urban code deploy to deliver your apps to cics
S106 using ibm urban code deploy to deliver your apps to cics
 
100 blue mix days technical training
100 blue mix days technical training100 blue mix days technical training
100 blue mix days technical training
 
Decision Optimization - CPLEX Optimization Studio - Product Overview(2).PPTX
Decision Optimization - CPLEX Optimization Studio - Product Overview(2).PPTXDecision Optimization - CPLEX Optimization Studio - Product Overview(2).PPTX
Decision Optimization - CPLEX Optimization Studio - Product Overview(2).PPTX
 
Getting started with OpenERP
Getting started with OpenERPGetting started with OpenERP
Getting started with OpenERP
 
Eclipse Way
Eclipse WayEclipse Way
Eclipse Way
 
CampDevOps keynote - DevOps: Using 'Lean' to eliminate Bottlenecks
CampDevOps keynote - DevOps: Using 'Lean' to eliminate BottlenecksCampDevOps keynote - DevOps: Using 'Lean' to eliminate Bottlenecks
CampDevOps keynote - DevOps: Using 'Lean' to eliminate Bottlenecks
 
Webcast Automação Implantação de Aplicações (DevOps)
Webcast Automação Implantação de Aplicações (DevOps)Webcast Automação Implantação de Aplicações (DevOps)
Webcast Automação Implantação de Aplicações (DevOps)
 
A301 ctu madrid2016-monitoring
A301 ctu madrid2016-monitoringA301 ctu madrid2016-monitoring
A301 ctu madrid2016-monitoring
 
From COBOL to Models: an MDE framework to extract business logic out of legac...
From COBOL to Models: an MDE framework to extract business logic out of legac...From COBOL to Models: an MDE framework to extract business logic out of legac...
From COBOL to Models: an MDE framework to extract business logic out of legac...
 
Extracting Business Rules from COBOL: A Model-Based Framework
Extracting Business Rules from COBOL: A Model-Based FrameworkExtracting Business Rules from COBOL: A Model-Based Framework
Extracting Business Rules from COBOL: A Model-Based Framework
 
What's new in Juno
What's new in JunoWhat's new in Juno
What's new in Juno
 
Who Took The Cookie From The Cookie Jar?
Who Took The Cookie From The Cookie Jar?Who Took The Cookie From The Cookie Jar?
Who Took The Cookie From The Cookie Jar?
 

Recently uploaded

Phenomics assisted breeding in crop improvement
Phenomics assisted breeding in crop improvementPhenomics assisted breeding in crop improvement
Phenomics assisted breeding in crop improvement
IshaGoswami9
 
Sharlene Leurig - Enabling Onsite Water Use with Net Zero Water
Sharlene Leurig - Enabling Onsite Water Use with Net Zero WaterSharlene Leurig - Enabling Onsite Water Use with Net Zero Water
Sharlene Leurig - Enabling Onsite Water Use with Net Zero Water
Texas Alliance of Groundwater Districts
 
ESR spectroscopy in liquid food and beverages.pptx
ESR spectroscopy in liquid food and beverages.pptxESR spectroscopy in liquid food and beverages.pptx
ESR spectroscopy in liquid food and beverages.pptx
PRIYANKA PATEL
 
SAR of Medicinal Chemistry 1st by dk.pdf
SAR of Medicinal Chemistry 1st by dk.pdfSAR of Medicinal Chemistry 1st by dk.pdf
SAR of Medicinal Chemistry 1st by dk.pdf
KrushnaDarade1
 
Shallowest Oil Discovery of Turkiye.pptx
Shallowest Oil Discovery of Turkiye.pptxShallowest Oil Discovery of Turkiye.pptx
Shallowest Oil Discovery of Turkiye.pptx
Gokturk Mehmet Dilci
 
Randomised Optimisation Algorithms in DAPHNE
Randomised Optimisation Algorithms in DAPHNERandomised Optimisation Algorithms in DAPHNE
Randomised Optimisation Algorithms in DAPHNE
University of Maribor
 
THEMATIC APPERCEPTION TEST(TAT) cognitive abilities, creativity, and critic...
THEMATIC  APPERCEPTION  TEST(TAT) cognitive abilities, creativity, and critic...THEMATIC  APPERCEPTION  TEST(TAT) cognitive abilities, creativity, and critic...
THEMATIC APPERCEPTION TEST(TAT) cognitive abilities, creativity, and critic...
Abdul Wali Khan University Mardan,kP,Pakistan
 
Deep Software Variability and Frictionless Reproducibility
Deep Software Variability and Frictionless ReproducibilityDeep Software Variability and Frictionless Reproducibility
Deep Software Variability and Frictionless Reproducibility
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
Immersive Learning That Works: Research Grounding and Paths Forward
Immersive Learning That Works: Research Grounding and Paths ForwardImmersive Learning That Works: Research Grounding and Paths Forward
Immersive Learning That Works: Research Grounding and Paths Forward
Leonel Morgado
 
bordetella pertussis.................................ppt
bordetella pertussis.................................pptbordetella pertussis.................................ppt
bordetella pertussis.................................ppt
kejapriya1
 
Authoring a personal GPT for your research and practice: How we created the Q...
Authoring a personal GPT for your research and practice: How we created the Q...Authoring a personal GPT for your research and practice: How we created the Q...
Authoring a personal GPT for your research and practice: How we created the Q...
Leonel Morgado
 
The use of Nauplii and metanauplii artemia in aquaculture (brine shrimp).pptx
The use of Nauplii and metanauplii artemia in aquaculture (brine shrimp).pptxThe use of Nauplii and metanauplii artemia in aquaculture (brine shrimp).pptx
The use of Nauplii and metanauplii artemia in aquaculture (brine shrimp).pptx
MAGOTI ERNEST
 
Remote Sensing and Computational, Evolutionary, Supercomputing, and Intellige...
Remote Sensing and Computational, Evolutionary, Supercomputing, and Intellige...Remote Sensing and Computational, Evolutionary, Supercomputing, and Intellige...
Remote Sensing and Computational, Evolutionary, Supercomputing, and Intellige...
University of Maribor
 
Applied Science: Thermodynamics, Laws & Methodology.pdf
Applied Science: Thermodynamics, Laws & Methodology.pdfApplied Science: Thermodynamics, Laws & Methodology.pdf
Applied Science: Thermodynamics, Laws & Methodology.pdf
University of Hertfordshire
 
The binding of cosmological structures by massless topological defects
The binding of cosmological structures by massless topological defectsThe binding of cosmological structures by massless topological defects
The binding of cosmological structures by massless topological defects
Sérgio Sacani
 
Bob Reedy - Nitrate in Texas Groundwater.pdf
Bob Reedy - Nitrate in Texas Groundwater.pdfBob Reedy - Nitrate in Texas Groundwater.pdf
Bob Reedy - Nitrate in Texas Groundwater.pdf
Texas Alliance of Groundwater Districts
 
20240520 Planning a Circuit Simulator in JavaScript.pptx
20240520 Planning a Circuit Simulator in JavaScript.pptx20240520 Planning a Circuit Simulator in JavaScript.pptx
20240520 Planning a Circuit Simulator in JavaScript.pptx
Sharon Liu
 
在线办理(salfor毕业证书)索尔福德大学毕业证毕业完成信一模一样
在线办理(salfor毕业证书)索尔福德大学毕业证毕业完成信一模一样在线办理(salfor毕业证书)索尔福德大学毕业证毕业完成信一模一样
在线办理(salfor毕业证书)索尔福德大学毕业证毕业完成信一模一样
vluwdy49
 
mô tả các thí nghiệm về đánh giá tác động dòng khí hóa sau đốt
mô tả các thí nghiệm về đánh giá tác động dòng khí hóa sau đốtmô tả các thí nghiệm về đánh giá tác động dòng khí hóa sau đốt
mô tả các thí nghiệm về đánh giá tác động dòng khí hóa sau đốt
HongcNguyn6
 
The debris of the ‘last major merger’ is dynamically young
The debris of the ‘last major merger’ is dynamically youngThe debris of the ‘last major merger’ is dynamically young
The debris of the ‘last major merger’ is dynamically young
Sérgio Sacani
 

Recently uploaded (20)

Phenomics assisted breeding in crop improvement
Phenomics assisted breeding in crop improvementPhenomics assisted breeding in crop improvement
Phenomics assisted breeding in crop improvement
 
Sharlene Leurig - Enabling Onsite Water Use with Net Zero Water
Sharlene Leurig - Enabling Onsite Water Use with Net Zero WaterSharlene Leurig - Enabling Onsite Water Use with Net Zero Water
Sharlene Leurig - Enabling Onsite Water Use with Net Zero Water
 
ESR spectroscopy in liquid food and beverages.pptx
ESR spectroscopy in liquid food and beverages.pptxESR spectroscopy in liquid food and beverages.pptx
ESR spectroscopy in liquid food and beverages.pptx
 
SAR of Medicinal Chemistry 1st by dk.pdf
SAR of Medicinal Chemistry 1st by dk.pdfSAR of Medicinal Chemistry 1st by dk.pdf
SAR of Medicinal Chemistry 1st by dk.pdf
 
Shallowest Oil Discovery of Turkiye.pptx
Shallowest Oil Discovery of Turkiye.pptxShallowest Oil Discovery of Turkiye.pptx
Shallowest Oil Discovery of Turkiye.pptx
 
Randomised Optimisation Algorithms in DAPHNE
Randomised Optimisation Algorithms in DAPHNERandomised Optimisation Algorithms in DAPHNE
Randomised Optimisation Algorithms in DAPHNE
 
THEMATIC APPERCEPTION TEST(TAT) cognitive abilities, creativity, and critic...
THEMATIC  APPERCEPTION  TEST(TAT) cognitive abilities, creativity, and critic...THEMATIC  APPERCEPTION  TEST(TAT) cognitive abilities, creativity, and critic...
THEMATIC APPERCEPTION TEST(TAT) cognitive abilities, creativity, and critic...
 
Deep Software Variability and Frictionless Reproducibility
Deep Software Variability and Frictionless ReproducibilityDeep Software Variability and Frictionless Reproducibility
Deep Software Variability and Frictionless Reproducibility
 
Immersive Learning That Works: Research Grounding and Paths Forward
Immersive Learning That Works: Research Grounding and Paths ForwardImmersive Learning That Works: Research Grounding and Paths Forward
Immersive Learning That Works: Research Grounding and Paths Forward
 
bordetella pertussis.................................ppt
bordetella pertussis.................................pptbordetella pertussis.................................ppt
bordetella pertussis.................................ppt
 
Authoring a personal GPT for your research and practice: How we created the Q...
Authoring a personal GPT for your research and practice: How we created the Q...Authoring a personal GPT for your research and practice: How we created the Q...
Authoring a personal GPT for your research and practice: How we created the Q...
 
The use of Nauplii and metanauplii artemia in aquaculture (brine shrimp).pptx
The use of Nauplii and metanauplii artemia in aquaculture (brine shrimp).pptxThe use of Nauplii and metanauplii artemia in aquaculture (brine shrimp).pptx
The use of Nauplii and metanauplii artemia in aquaculture (brine shrimp).pptx
 
Remote Sensing and Computational, Evolutionary, Supercomputing, and Intellige...
Remote Sensing and Computational, Evolutionary, Supercomputing, and Intellige...Remote Sensing and Computational, Evolutionary, Supercomputing, and Intellige...
Remote Sensing and Computational, Evolutionary, Supercomputing, and Intellige...
 
Applied Science: Thermodynamics, Laws & Methodology.pdf
Applied Science: Thermodynamics, Laws & Methodology.pdfApplied Science: Thermodynamics, Laws & Methodology.pdf
Applied Science: Thermodynamics, Laws & Methodology.pdf
 
The binding of cosmological structures by massless topological defects
The binding of cosmological structures by massless topological defectsThe binding of cosmological structures by massless topological defects
The binding of cosmological structures by massless topological defects
 
Bob Reedy - Nitrate in Texas Groundwater.pdf
Bob Reedy - Nitrate in Texas Groundwater.pdfBob Reedy - Nitrate in Texas Groundwater.pdf
Bob Reedy - Nitrate in Texas Groundwater.pdf
 
20240520 Planning a Circuit Simulator in JavaScript.pptx
20240520 Planning a Circuit Simulator in JavaScript.pptx20240520 Planning a Circuit Simulator in JavaScript.pptx
20240520 Planning a Circuit Simulator in JavaScript.pptx
 
在线办理(salfor毕业证书)索尔福德大学毕业证毕业完成信一模一样
在线办理(salfor毕业证书)索尔福德大学毕业证毕业完成信一模一样在线办理(salfor毕业证书)索尔福德大学毕业证毕业完成信一模一样
在线办理(salfor毕业证书)索尔福德大学毕业证毕业完成信一模一样
 
mô tả các thí nghiệm về đánh giá tác động dòng khí hóa sau đốt
mô tả các thí nghiệm về đánh giá tác động dòng khí hóa sau đốtmô tả các thí nghiệm về đánh giá tác động dòng khí hóa sau đốt
mô tả các thí nghiệm về đánh giá tác động dòng khí hóa sau đốt
 
The debris of the ‘last major merger’ is dynamically young
The debris of the ‘last major merger’ is dynamically youngThe debris of the ‘last major merger’ is dynamically young
The debris of the ‘last major merger’ is dynamically young
 

Some "Do"s and "Dont'"s of Benchmarking