What Is the Optimal Which Annealing . . . Annealing Schedule in - - PowerPoint PPT Presentation

what is the optimal
SMART_READER_LITE
LIVE PREVIEW

What Is the Optimal Which Annealing . . . Annealing Schedule in - - PowerPoint PPT Presentation

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing What Is the Optimal Which Annealing . . . Annealing Schedule in Physical Meaning of . . . Need to Select a Family Quantum Annealing


slide-1
SLIDE 1

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing Which Annealing . . . Physical Meaning of . . . Need to Select a Family Definitions Results Home Page Title Page ◭◭ ◮◮ ◭ ◮ Page 1 of 30 Go Back Full Screen Close Quit

What Is the Optimal Annealing Schedule in Quantum Annealing

Oscar Galindo and Vladik Krenovich

Department of Computer Science University of Texas at El Paso El Paso, Texas 79968, USA

  • galindomo@miners.utep.edu, vladik@utep.edu
slide-2
SLIDE 2

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing Which Annealing . . . Physical Meaning of . . . Need to Select a Family Definitions Results Home Page Title Page ◭◭ ◮◮ ◭ ◮ Page 2 of 30 Go Back Full Screen Close Quit

1. Optimization Is Important

  • In practical applications, we want to find:

– the best possible decision, i.e., – the decision for which the appropriate objective function attains its largest possible value.

  • There exist many numerical algorithms for optimiza-

tion.

  • How do we know that we have reached the maximum?
  • We compare the quality of current alternative with the

qualities of several similar alternatives.

  • Often, we have a situation of local maximum, when:

– an alternative is better than all nearby alternatives, but – is still worse than some other – distant – alterna- tive.

slide-3
SLIDE 3

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing Which Annealing . . . Physical Meaning of . . . Need to Select a Family Definitions Results Home Page Title Page ◭◭ ◮◮ ◭ ◮ Page 3 of 30 Go Back Full Screen Close Quit

2. How to Jump out of a Local Maximum?

  • It is not clear in which direction we should go.
  • All directions are, in this sense, equally good (or equally

bad).

  • So a reasonable idea is to pick each direction at ran-

dom.

  • The corresponding change should be significant – oth-

erwise, we will not get out of the local maximum.

  • This is the main idea behind simulated annealing.
  • We want this process to eventually stop.
  • Thus, the probability of jumping decreases with time.
  • How exactly this probability decreases with time is

known as the annealing schedule.

slide-4
SLIDE 4

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing Which Annealing . . . Physical Meaning of . . . Need to Select a Family Definitions Results Home Page Title Page ◭◭ ◮◮ ◭ ◮ Page 4 of 30 Go Back Full Screen Close Quit

3. Proper Selection of Annealing Schedule Is Very Important

  • The success – or not – of simulated annealing depends
  • n annealing schedule.
  • If we decrease the probability too fast, we will not give

the algorithm enough time to jump out of a local max.

  • On the other hand, if we decrease it too slowly, the

algorithm will work forever and never stops.

slide-5
SLIDE 5

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing Which Annealing . . . Physical Meaning of . . . Need to Select a Family Definitions Results Home Page Title Page ◭◭ ◮◮ ◭ ◮ Page 5 of 30 Go Back Full Screen Close Quit

4. Quantum Annealing

  • Traditional computations are deterministic.
  • So, to perform simulated annealing, we need to artifi-

cially introduce randomness.

  • In contrast, quantum processes are, in general, proba-

bilistic.

  • Thus, in quantum computing, to implement a random

deviation: – there is no need to artificially introduce random- ness, – it is sufficient to somewhat modify the system’s dy- namics.

  • In general, the state of a quantum system is described

by a complex-valued function ψ(t).

  • It is known as the wave function.
slide-6
SLIDE 6

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing Which Annealing . . . Physical Meaning of . . . Need to Select a Family Definitions Results Home Page Title Page ◭◭ ◮◮ ◭ ◮ Page 6 of 30 Go Back Full Screen Close Quit

5. Quantum Annealing (cont-d)

  • The dynamics of a quantum system is described by

Schroedinger’s equations i · · ∂ψ ∂t = Hψ.

  • Here i

def

= √−1 and H is a linear operator.

  • In these terms, annealing-type modification means adding

additional terms – decreasing with time – to H: i · · ∂ψ ∂t = Hψ + γ(t) · H0ψ.

  • Quantum annealing is the main idea behind D-Wave

Systems quantum computing devices.

  • These are the only commercially available and practi-

cally useful computers that use quantum computing.

slide-7
SLIDE 7

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing Which Annealing . . . Physical Meaning of . . . Need to Select a Family Definitions Results Home Page Title Page ◭◭ ◮◮ ◭ ◮ Page 7 of 30 Go Back Full Screen Close Quit

6. Which Annealing Schedule Works Best

  • Empirically, depending on the specific optimization prob-

lem, two schedules work the best: – the power law annealing schedule γ(t) = A · ta, for some A and a < 0; and – the exponential annealing schedule γ(t) = A · exp(a · t) for some A and a < 0.

  • In this talk, we present a possible theoretical explana-

tion for these empirical facts.

slide-8
SLIDE 8

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing Which Annealing . . . Physical Meaning of . . . Need to Select a Family Definitions Results Home Page Title Page ◭◭ ◮◮ ◭ ◮ Page 8 of 30 Go Back Full Screen Close Quit

7. Physical Meaning of Annealing

  • A physical system tends to end up in a state with the

smallest possible energy.

  • For example, in a gravitational field, this means getting

to as low a position as possible.

  • In principle, we can place a ball on top of the mountain

– which will constitute a local minimum of energy.

  • However, if a strong wind blows and disturbs the ball,

it will start falling down.

  • So, a natural way to use simulated physical phenomena

for optimization is to simulate a system for which: – for all the values of the parameters, – its energy is equal to the value of minimized objec- tive function.

slide-9
SLIDE 9

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing Which Annealing . . . Physical Meaning of . . . Need to Select a Family Definitions Results Home Page Title Page ◭◭ ◮◮ ◭ ◮ Page 9 of 30 Go Back Full Screen Close Quit

8. Physical Meaning (cont-d)

  • In general, in Schroedinger equations, energy is repre-

sented by the operator H.

  • So for quantum annealing, this operator must represent

the desired objective function.

slide-10
SLIDE 10

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing Which Annealing . . . Physical Meaning of . . . Need to Select a Family Definitions Results Home Page Title Page ◭◭ ◮◮ ◭ ◮ Page 10 of 30 Go Back Full Screen Close Quit

9. Need to Select a Family

  • The original optimization problem is usually not for-

mulated in terms of energy.

  • So, how we transform it into energy depends on our

choice of units.

  • If we select a different unit, this means that in original

unit, instead of H, we will have C · H; – if for H, the best schedule was γ(t), – then for C · H, the best schedule is C · γ(t).

  • Indeed, i·· ∂ψ

∂t = C·Hψ+C·γ(t)·H0ψ is equivalent to the original equation if we re-scale the time: t → t/C.

slide-11
SLIDE 11

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing Which Annealing . . . Physical Meaning of . . . Need to Select a Family Definitions Results Home Page Title Page ◭◭ ◮◮ ◭ ◮ Page 11 of 30 Go Back Full Screen Close Quit

10. Need to Select a Family (cont-d)

  • The choice of the energy unit is rather arbitrary, so:

– with each such optimal schedule γ(t), – in different energy units, a schedule C · γ(t) is op- timal.

  • Thus, we can only select a family {C · γ(t)}C>0 of an-

nealing functions.

  • Here, a function γ(t) is fixed, and the parameter C can

take any positive value.

slide-12
SLIDE 12

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing Which Annealing . . . Physical Meaning of . . . Need to Select a Family Definitions Results Home Page Title Page ◭◭ ◮◮ ◭ ◮ Page 12 of 30 Go Back Full Screen Close Quit

11. What Does Optimal Mean?

  • What is the best depends on the situation.
  • We may want to get the results as fast as possible.
  • We may want to get the maximum as close to the global

maximum as possible even if it takes more time.

  • There are many other possible options.
  • In all these cases, we have a criterion for comparing

families, i.e., saying when: – one family F1 is better than family F2 (we will de- note it by F2 < F1), – or F2 is better than F1 (F1 < F2), – or F1 and F2 are of the same quality with respect to the given criterion; we will denote this by F1 ∼ F2.

  • Of course, if F1 is better than F2 and F2 is better than

F2, then F1 should be better than F3.

slide-13
SLIDE 13

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing Which Annealing . . . Physical Meaning of . . . Need to Select a Family Definitions Results Home Page Title Page ◭◭ ◮◮ ◭ ◮ Page 13 of 30 Go Back Full Screen Close Quit

12. What Does Optimal Mean (cont-d)

  • An optimal family Fopt is a family which is better (or
  • f the same quality) that every other family F:

F < Fopt or F ∼ Fopt.

  • What if we have two different optimal families?
  • This happens in real-life optimization problems; e.g.:

– if we are minimizing time, – we may have two different annealing schedules that takes the exact same time on given examples.

  • In this case, a natural idea is to use this non-uniqueness

to optimize something else.

  • E.g., we can select a family with the more accurate

approximation to the actual maximum.

slide-14
SLIDE 14

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing Which Annealing . . . Physical Meaning of . . . Need to Select a Family Definitions Results Home Page Title Page ◭◭ ◮◮ ◭ ◮ Page 14 of 30 Go Back Full Screen Close Quit

13. What Does Optimal Mean (cont-d)

  • In effect, we thus have a more complex optimality cri-

terion: F1 is better than F2 if: – either F1 is faster, – or if they take the same time but F1 is more accu- rate.

  • If this new criterion still leaves several optimal families,

we can optimize something else.

  • We can continue thus modifying the optimality crite-

rion: – until we get a final criterion, – for which there is exactly one optimal family.

slide-15
SLIDE 15

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing Which Annealing . . . Physical Meaning of . . . Need to Select a Family Definitions Results Home Page Title Page ◭◭ ◮◮ ◭ ◮ Page 15 of 30 Go Back Full Screen Close Quit

14. Need for Re-Scaling Time

  • The numerical value of time also depends on the choice

if the measuring unit.

  • If we replace the original unit of time by a λ times

smaller unit, then each value t is replaced by λ · t.

  • For example, if we replace minutes by seconds, then 2

minutes becomes 60 · 2 = 120 seconds.

  • It is reasonable to requires that the relative quality of

a family not change if we simply change the t-unit: – if {C · γ1(t)}C>0 < {C · γ2(t)}C>0, – then {C · γ1(λ · t)}C>0 < {C · γ2(λ · t)}C>0.

slide-16
SLIDE 16

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing Which Annealing . . . Physical Meaning of . . . Need to Select a Family Definitions Results Home Page Title Page ◭◭ ◮◮ ◭ ◮ Page 16 of 30 Go Back Full Screen Close Quit

15. Need for Re-Scaling Time (cont-d)

  • The numerical value of time also depends on the choice
  • f the starting point:

– if we replace the original starting point with the

  • ne which is t0 units earlier,

– then all numerical values t are replaced with shifted values t + t0.

  • The relative quality of two families should not depend
  • n the choice of the starting point:

– if {C · γ1(t)}C>0 < {C · γ2(t)}C>0, – then {C · γ1(t + t0)}C>0 < {C · γ2(t + t0)}C>0.

  • Now, we are ready to formulate our problem in precise

terms.

slide-17
SLIDE 17

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing Which Annealing . . . Physical Meaning of . . . Need to Select a Family Definitions Results Home Page Title Page ◭◭ ◮◮ ◭ ◮ Page 17 of 30 Go Back Full Screen Close Quit

16. Definitions

  • By a family, we mean a class of functions {C ·γ(t)}C>0,

where γ(t) is a monotonically tends to 0 at infinity.

  • By an optimality criterion, we mean a pair of relations

(<, ∼) on the class of all families for which: – for every pair (F1, F2), we have exactly one of the possible relations F1 < F2, F2 < F1, and F1 ∼ F2; – if F1 < F2 and F2 < F3, then F1 < F3; – if F1 < F2 and F2 ∼ F3, then F1 < F3; – if F1 ∼ F2 and F2 < F3, then F1 < F3; – if F1 ∼ F2 and F2 ∼ F3, then F1 ∼ F3.

  • We say that a family Fopt is optimal with respect to

the optimality criterion (<, ∼) if for every family F: F < Fopt or F ∼ Fopt.

slide-18
SLIDE 18

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing Which Annealing . . . Physical Meaning of . . . Need to Select a Family Definitions Results Home Page Title Page ◭◭ ◮◮ ◭ ◮ Page 18 of 30 Go Back Full Screen Close Quit

17. Definitions (cont-d)

  • We say that an optimality criterion is final if exactly
  • ne family is optimal with respect to this criterion.
  • For every λ > 0, by a re-scaling Tλ(F) of a family

F = {C · γ(t)}C>0, we mean a family {C · γ(λ · t)}C>0.

  • For every t0, by a shift St0(F) of a family

F = {C ·γ(t)}C>0, we mean a family {C ·γ(t+t0)}C>0.

  • We say that an optimality criterion is scale-invariant

if for all Fi and λ < 0: – F1 < F2 implies Tλ(F1) < Tλ(F2) and – F1 ∼ F2 implies Tλ(F1) ∼ Tλ(F2).

  • We say that an optimality criterion is shift-invariant if

for all Fi and t0: – F1 < F2 implies St0(F1) < St0(F2) and – F1 ∼ F2 implies St0(F1) ∼ St0(F2).

slide-19
SLIDE 19

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing Which Annealing . . . Physical Meaning of . . . Need to Select a Family Definitions Results Home Page Title Page ◭◭ ◮◮ ◭ ◮ Page 19 of 30 Go Back Full Screen Close Quit

18. Results

  • It seems reasonable to require that the optimality cri-

terion be both scale- and shift-invariant.

  • However, this turned out to be impossible:
  • Proposition. No final optimality criterion is scale-

and shift-invariant.

  • When we require either scale-invariance or shift-invariance,

we get the empirically best annealing schedules.

  • Proposition. For every scale-invariant optimality cri-

terion, the optimal annealing schedule is γ(t) = A · ta.

  • Proposition. For every shift-invariant optimality cri-

terion, the optimal annealing schedule is γ(t) = A · exp(a · t).

slide-20
SLIDE 20

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing Which Annealing . . . Physical Meaning of . . . Need to Select a Family Definitions Results Home Page Title Page ◭◭ ◮◮ ◭ ◮ Page 20 of 30 Go Back Full Screen Close Quit

19. Proof of Scaling Proposition

  • Let Fopt = {C · γopt(t)}C>0 be the family which is op-

timal w.r.t. the scale-invariant optimality criterion.

  • Let us first prove that this family if itself scale-invariant,

i.e., that we have Tλ(Fopt) = Fopt for all λ > 0.

  • Indeed, since the family Fopt is optimal, we have F <

Fopt or F ∼ Fopt for every family F.

  • In particular, Tλ−1(F) < Fopt or Tλ−1(F) ∼ Fopt.
  • One can easily see that Tλ(Tλ−1(F)) = F.
  • Thus, due to scale-invariance, for every family F, we

have F < Tλ(Fopt) or F ∼ Tλ(Fopt).

  • By definition of optimality, this means that Tλ(Fopt) is

also an optimal family.

  • However, out optimality criterion is final, which means

that there is only one optimal family.

slide-21
SLIDE 21

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing Which Annealing . . . Physical Meaning of . . . Need to Select a Family Definitions Results Home Page Title Page ◭◭ ◮◮ ◭ ◮ Page 21 of 30 Go Back Full Screen Close Quit

20. Proof (cont-d)

  • Thus indeed Tλ(Fopt) = Fopt.
  • By definition of scaling Tλ(F), the function γ(λ · t)

belongs to the family Tλ(Fopt).

  • This family is equal to the original family

Fopt = {C · γopt(t)}C>0.

  • So, the f-n γ(λ · t) belongs to this original family as

well: γ(λ · t) = C(λ) · γ(t) for some C depending on λ.

  • It is known that all monotonic solutions of this func-

tional equation have the desired form A · ta.

  • The proposition is proven.
slide-22
SLIDE 22

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing Which Annealing . . . Physical Meaning of . . . Need to Select a Family Definitions Results Home Page Title Page ◭◭ ◮◮ ◭ ◮ Page 22 of 30 Go Back Full Screen Close Quit

21. Comment

  • The functional equation γ(λ · t) = C(λ) · γ(t) is easy

to solve if γ(t) is differentiable.

  • Then, the function C(λ) is also differentiable – as a

ratio of two differentiable functions.

  • So, we can differentiate both sides with respect to λ

and take λ = 1; we get t · dγ dt = a · γ, where a

def

= C′(1).

  • By moving terms containing γ to one side and terms

containing t to another side, we get dγ γ = a · dt t .

  • Integrating, we get ln(γ) = a · ln(t) + C0, where C0 is

the integration constant.

  • By applying exp(z) to both sides, we get the desired

formula γ = A · ta, for A = exp(C0).

slide-23
SLIDE 23

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing Which Annealing . . . Physical Meaning of . . . Need to Select a Family Definitions Results Home Page Title Page ◭◭ ◮◮ ◭ ◮ Page 23 of 30 Go Back Full Screen Close Quit

22. Proof of Shift-Related Proposition

  • Let Fopt = {C · γopt(t)}C>0 be the family which is op-

timal w.r.t. the shift-invariant optimality criterion.

  • Let us first prove that this family if itself shift-invariant,

i.e., that we have St0(Fopt) = Fopt for all t0.

  • Indeed, since the family Fopt is optimal, we have F <

Fopt or F ∼ Fopt for every family F.

  • In particular, S−t0(F) < Fopt or S−t0(F) ∼ Fopt.
  • One can easily see that St0(S−t0(F)) = F.
  • Thus, due to shift-invariance, for every family F, we

have F < St0(Fopt) or F ∼ St0(Fopt).

  • By definition of optimality, this means that St0(Fopt)

is also an optimal family.

  • However, out optimality criterion is final, which means

that there is only one optimal family.

slide-24
SLIDE 24

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing Which Annealing . . . Physical Meaning of . . . Need to Select a Family Definitions Results Home Page Title Page ◭◭ ◮◮ ◭ ◮ Page 24 of 30 Go Back Full Screen Close Quit

23. Proof (cont-d)

  • Thus indeed St0(Fopt) = Fopt.
  • By definition of a shift St0(F), the function γ(t + t0)

belongs to the family St0(Fopt).

  • This family is equal to the original family

Fopt = {C · γopt(t)}C>0.

  • So, the function γ(t+t0) belongs to this original family

as well.

  • Thus, γ(t + t0) = C(t0) · γ(t) for some C depending
  • n t0.
  • It is known that all monotonic solutions of this func-

tional equation have the desired form A · exp(a · t).

  • The proposition is proven.
slide-25
SLIDE 25

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing Which Annealing . . . Physical Meaning of . . . Need to Select a Family Definitions Results Home Page Title Page ◭◭ ◮◮ ◭ ◮ Page 25 of 30 Go Back Full Screen Close Quit

24. Comment

  • The functional equation γ(t + t0) = C(t0) · γ(t) is easy

to solve when γ(t) is differentiable.

  • Then, the function C(t0) is also differentiable – as a

ratio of two differentiable functions.

  • Thus, we can differentiate both sides w.r.t. t0 and take

t0 = 0; dγ dt = a · γ, where a

def

= C′(0).

  • By moving terms containing γ to one side and terms

containing t to another side, we get dγ γ = a · t.

  • Integrating, we get ln(γ) = a · t + C0, where C0 is the

integration constant.

  • By applying exp(z) to both sides, we get the desired

formula γ = A · exp(a · t), for A = exp(C0).

slide-26
SLIDE 26

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing Which Annealing . . . Physical Meaning of . . . Need to Select a Family Definitions Results Home Page Title Page ◭◭ ◮◮ ◭ ◮ Page 26 of 30 Go Back Full Screen Close Quit

25. Conclusions

  • One of the main problems in numerical optimization is

avoiding local extrema.

  • One of the most widely used ways for such avoidance

is simulated annealing, when: – we jump out of a local extremum to some other location – with a probability depending on the values of the

  • bjective function at different locations.
  • In many optimization problems, quantum annealing

works better than the traditional (non-quantum) one.

  • In particular, quantum annealing is used by D-Wave

computers.

  • These are the only commercially available devices that

use quantum computing.

slide-27
SLIDE 27

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing Which Annealing . . . Physical Meaning of . . . Need to Select a Family Definitions Results Home Page Title Page ◭◭ ◮◮ ◭ ◮ Page 27 of 30 Go Back Full Screen Close Quit

26. Conclusions (cont-d)

  • The efficiency of quantum annealing depends on the

annealing schedule – i.e., on: – how transition probabilities – change from one iteration to the next.

  • Two classes of annealing schedules have been found out

to be empirically the best: – power law schedule and – exponential schedule.

  • On several examples, these two classes of schedules

worked better than several other tested schedules.

  • However, up to now, there was no theoretical explana-

tion for the empirical success of these schedules.

slide-28
SLIDE 28

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing Which Annealing . . . Physical Meaning of . . . Need to Select a Family Definitions Results Home Page Title Page ◭◭ ◮◮ ◭ ◮ Page 28 of 30 Go Back Full Screen Close Quit

27. Conclusions (cont-d)

  • So, it was not clear:

– whether these schedules are indeed the best or – whether they are only better than the schedules against which they have been tested.

  • It was not clear:

– whether the selected schedules are indeed better for all the optimization problems – or only for the problems on which they have been tested.

  • In this paper, we provide a theoretical explanation for

the empirical success of selected classes of schedules.

slide-29
SLIDE 29

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing Which Annealing . . . Physical Meaning of . . . Need to Select a Family Definitions Results Home Page Title Page ◭◭ ◮◮ ◭ ◮ Page 29 of 30 Go Back Full Screen Close Quit

28. Conclusions (cont-d)

  • This theoretical explanation gives us confidence:

– that these schedules will be efficient for other opti- mization problems as well, and – that the selected schedules are indeed better than all other possible schedules, – including schedules against which they have not yet been tested.

slide-30
SLIDE 30

Optimization Is Important How to Jump out of a . . . Proper Selection of . . . Quantum Annealing Which Annealing . . . Physical Meaning of . . . Need to Select a Family Definitions Results Home Page Title Page ◭◭ ◮◮ ◭ ◮ Page 30 of 30 Go Back Full Screen Close Quit

29. Acknowledgments This work was supported in part by the US National Sci- ence Foundation grants:

  • 1623190 (A Model of Change for Preparing a New Gen-

eration for Professional Practice in Computer Science);

  • HRD-1242122 (Cyber-ShARE Center of Excellence).