90
The Cross-Entropy Method for Mathematical Programming * Dirk P. Kroese Reuven Y. Rubinstein * Department of Mathematics, The University of Queensland, Australia Faculty of Industrial Engineering and Management, Technion, Israel The Cross-Entropy Method forMathematical Programming – p. 1/42

The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

The Cross-Entropy Method forMathematical Programming

∗Dirk P. Kroese Reuven Y. Rubinstein

∗Department of Mathematics, The University of Queensland, Australia

Faculty of Industrial Engineering and Management, Technion, Israel

The Cross-Entropy Method forMathematical Programming – p. 1/42

Page 2: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Contents

1. Introduction

2. CE Methodology

3. Applications

4. Some Theory on CE

5. Conclusion + Discussion

The Cross-Entropy Method forMathematical Programming – p. 2/42

Page 3: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

CE Matters

Book: R.Y. Rubinstein and D.P. Kroese.The Cross-Entropy Method: A Unified

Approach to Combinatorial Optimization,

Monte Carlo Simulation and Machine Learn-

ing, Springer-Verlag, New York, 2004.

The Cross-Entropy Method forMathematical Programming – p. 3/42

Page 4: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

CE Matters

Book: R.Y. Rubinstein and D.P. Kroese.The Cross-Entropy Method: A Unified

Approach to Combinatorial Optimization,

Monte Carlo Simulation and Machine Learn-

ing, Springer-Verlag, New York, 2004.

Special Issue: Annals of Operations Research (Jan 2005).

The Cross-Entropy Method forMathematical Programming – p. 3/42

Page 5: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

CE Matters

Book: R.Y. Rubinstein and D.P. Kroese.The Cross-Entropy Method: A Unified

Approach to Combinatorial Optimization,

Monte Carlo Simulation and Machine Learn-

ing, Springer-Verlag, New York, 2004.

Special Issue: Annals of Operations Research (Jan 2005).

The CE home page:

http://www.cemethod.org

The Cross-Entropy Method forMathematical Programming – p. 3/42

Page 6: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Introduction

The Cross-Entropy Method was originally developed as asimulation method for the estimation of rare event probabilities:

Estimate P(S(X) ≥ γ)

X: random vector/process taking values in some set X .S: real-valued function on X .

The Cross-Entropy Method forMathematical Programming – p. 4/42

Page 7: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Introduction

The Cross-Entropy Method was originally developed as asimulation method for the estimation of rare event probabilities:

Estimate P(S(X) ≥ γ)

X: random vector/process taking values in some set X .S: real-valued function on X .

It was soon realised that the CE Method could also be used as anoptimization method:

Determine maxx∈X S(x)

The Cross-Entropy Method forMathematical Programming – p. 4/42

Page 8: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Some Applications

Combinatorial Optimization (e.g., Travelling Salesman,Maximal Cut and Quadratic Assignment Problems)

Noisy Optimization (e.g., Buffer Allocation, FinancialEngineering)

Multi-Extremal Continuous Optimization

Pattern Recognition, Clustering and Image Analysis

Production Lines and Project Management

Network Reliability Estimation

Vehicle Routing and Scheduling

DNA Sequence Alignment

The Cross-Entropy Method forMathematical Programming – p. 5/42

Page 9: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

A Multi-extremal Function

-1-0.5

00.5

1 -1

-0.5

0

0.5

1

0

5

10

15

20

25

The Cross-Entropy Method forMathematical Programming – p. 6/42

Page 10: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

A Maze Problem

The Optimal Trajectory

0 2 4 6 8 10 12 14 16 18 200

2

4

6

8

10

12

14

16

18

20

The Cross-Entropy Method forMathematical Programming – p. 7/42

Page 11: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

A Maze Problem

Iteration 1:

0 2 4 6 8 10 12 14 16 18 200

2

4

6

8

10

12

14

16

18

20

The Cross-Entropy Method forMathematical Programming – p. 8/42

Page 12: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

A Maze Problem

Iteration 2:

0 2 4 6 8 10 12 14 16 18 200

2

4

6

8

10

12

14

16

18

20

The Cross-Entropy Method forMathematical Programming – p. 9/42

Page 13: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

A Maze Problem

Iteration 3:

0 2 4 6 8 10 12 14 16 18 200

2

4

6

8

10

12

14

16

18

20

The Cross-Entropy Method forMathematical Programming – p. 10/42

Page 14: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

A Maze Problem

Iteration 4:

0 2 4 6 8 10 12 14 16 18 200

2

4

6

8

10

12

14

16

18

20

The Cross-Entropy Method forMathematical Programming – p. 11/42

Page 15: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

The Optimisation Setting

Many real-world optimisation problems can be formulatedmathematically as either (or both)

1. Locate some element x∗ in a set X such that

S(x∗) ≥ S(x) for all x ∈ X ,

where S is a objective function or performance measuredefined on X .

2. Find γ∗ = S(x∗), the globally maximal value of thefunction.

The Cross-Entropy Method forMathematical Programming – p. 12/42

Page 16: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

The Optimisation Setting

Many real-world optimisation problems can be formulatedmathematically as either (or both)

1. Locate some element x∗ in a set X such that

S(x∗) ≥ S(x) for all x ∈ X ,

where S is a objective function or performance measuredefined on X .

2. Find γ∗ = S(x∗), the globally maximal value of thefunction.

X discrete: combinatorial optimisation problemX continuous: continuous optimisation problem.

The Cross-Entropy Method forMathematical Programming – p. 12/42

Page 17: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

A New Approach: CE

Instead of locating optimal solutions to a particular problemdirectly, the CE method aims to

locate an optimal sampling distribution

The sampling distribution is optimal if only optimal solutionscan be sampled from it.

The Cross-Entropy Method forMathematical Programming – p. 13/42

Page 18: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

General CE Procedure

First, provide the state space X (whether the states arecoordinates, permutations, or some other mathematical entities)over which the problem is defined, along with a performancemeasure S on this space.

Second, formulate the parameterized sampling distribution togenerate objects X ∈ X . Then, iterate the following steps:

• Generate a random sample of states X1, . . . , XN ∈ X .

• Update the parameters of the random mechanism (obtained viaCE minimization), in order to produce a better sample in the nextiteration.

The Cross-Entropy Method forMathematical Programming – p. 13/42

Page 19: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

General CE Procedure

First, provide the state space X (whether the states arecoordinates, permutations, or some other mathematical entities)over which the problem is defined, along with a performancemeasure S on this space.

Second, formulate the parameterized sampling distribution togenerate objects X ∈ X . Then, iterate the following steps:

• Generate a random sample of states X1, . . . , XN ∈ X .

• Update the parameters of the random mechanism (obtained viaCE minimization), in order to produce a better sample in the nextiteration.

The Cross-Entropy Method forMathematical Programming – p. 13/42

Page 20: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

General CE Procedure

First, provide the state space X (whether the states arecoordinates, permutations, or some other mathematical entities)over which the problem is defined, along with a performancemeasure S on this space.

Second, formulate the parameterized sampling distribution togenerate objects X ∈ X . Then, iterate the following steps:

• Generate a random sample of states X1, . . . , XN ∈ X .

• Update the parameters of the random mechanism (obtained viaCE minimization), in order to produce a better sample in the nextiteration.

The Cross-Entropy Method forMathematical Programming – p. 13/42

Page 21: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

General CE Procedure

First, provide the state space X (whether the states arecoordinates, permutations, or some other mathematical entities)over which the problem is defined, along with a performancemeasure S on this space.

Second, formulate the parameterized sampling distribution togenerate objects X ∈ X . Then, iterate the following steps:

• Generate a random sample of states X1, . . . , XN ∈ X .

• Update the parameters of the random mechanism (obtained viaCE minimization), in order to produce a better sample in the nextiteration.

The Cross-Entropy Method forMathematical Programming – p. 13/42

Page 22: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

General CE Algorithm

1. Initialise the parameters of the algorithm.

2. Generate a random sample from the sampling distribution.

3. Update the parameters of the sampling distribution on thebasis of the best scoring samples, the so-called elitesamples.This step involves the Cross-Entropy distance.

4. Repeat from Step 2 until some stopping criterion is met.

The Cross-Entropy Method forMathematical Programming – p. 14/42

Page 23: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Degenerate Sampling Distribution

Suppose that there is a unique solution x∗ to the problem.

Then, the degenerate distribution assigns all of the probabilitymass (in the discrete case) or density (in the continuous case) tothis point in X .

It is exactly the degenerate distribution from which we wish toultimately sample, in order to obtain an optimal solution.

The Cross-Entropy Method forMathematical Programming – p. 15/42

Page 24: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Detailed Generic CE Algorithm

1. Choose an initial parameter vector, v0. Set t = 1.

2. Generate X1, X2, . . . , XN from the density f(·; vt−1)

3. Compute the sample (1 − ρ)-quantile, γt = S(d(1−ρ)Ne),locate the elite samples E = {X i : S(X i) ≥ γt}, anddetermine

vt = argmaxv

Xi∈E

ln f(X i; v).

Set the current estimate for the optimal parameter vector, vt

to: vt = αvt + (1 − α)vt−1.

4. If the stopping criterion is met, stop; otherwise sett = t + 1, and return to Step 2.

The Cross-Entropy Method forMathematical Programming – p. 16/42

Page 25: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Maximum Likelihood

There is a connection between the Cross-Entropy method andMaximum Likelihood Estimation, which implies a very simpleway of updating the parameter vector:

take the maximum likelihood estimate of theparameter vector based on the elite samples.

Thus, the sampling distribution comes “closer” at each iterationto the degenerate distribution, which is the optimal samplingdistribution for the problem.

The Cross-Entropy Method forMathematical Programming – p. 17/42

Page 26: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Example: The Max-Cut Problem

Consider a weighted graph G with node set V = {1, . . . , n}.Partition the nodes of the graph into two subsets V1 and V2 suchthat the sum of the weights of the edges going from one subset tothe other is maximised.

Example:3

4

5

62

1

The Cross-Entropy Method forMathematical Programming – p. 18/42

Page 27: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Cost matrix (assume symmetric):

C =

0 c12 c13 0 0 0

c21 0 c23 c24 0 0

c31 c32 0 c34 c35 0

0 c42 c43 0 c45 c46

0 0 c53 c54 0 c56

0 0 0 c64 c65 0

.

{V1, V2} = {{1, 3, 4}, {2, 5, 6}} is a possible cut. The cost of thecut is

c12 + c32 + c35 + c42 + c45 + c46.

The Cross-Entropy Method forMathematical Programming – p. 19/42

Page 28: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Random Cut Vector

We can represent a cut via a cut vector x = (x1, . . . , xn), wherexi = 1 if node i belongs to same partition as 1, and 0 else.

We wish to maximise S(x) via the CE method.

The Cross-Entropy Method forMathematical Programming – p. 20/42

Page 29: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Random Cut Vector

We can represent a cut via a cut vector x = (x1, . . . , xn), wherexi = 1 if node i belongs to same partition as 1, and 0 else.

For example, the cut {{1, 3, 4}, {2, 5, 6}} can be represented viathe cut vector (1, 0, 1, 1, 0, 0).

We wish to maximise S(x) via the CE method.

The Cross-Entropy Method forMathematical Programming – p. 20/42

Page 30: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Random Cut Vector

We can represent a cut via a cut vector x = (x1, . . . , xn), wherexi = 1 if node i belongs to same partition as 1, and 0 else.

For example, the cut {{1, 3, 4}, {2, 5, 6}} can be represented viathe cut vector (1, 0, 1, 1, 0, 0).

Let X be the set of all cut vectors x = (1, x2, . . . , xn).

We wish to maximise S(x) via the CE method.

The Cross-Entropy Method forMathematical Programming – p. 20/42

Page 31: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Random Cut Vector

We can represent a cut via a cut vector x = (x1, . . . , xn), wherexi = 1 if node i belongs to same partition as 1, and 0 else.

For example, the cut {{1, 3, 4}, {2, 5, 6}} can be represented viathe cut vector (1, 0, 1, 1, 0, 0).

Let X be the set of all cut vectors x = (1, x2, . . . , xn).

Let S(x) be the corresponding cost of the cut.

We wish to maximise S(x) via the CE method.

The Cross-Entropy Method forMathematical Programming – p. 20/42

Page 32: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Random Cut Vector

We can represent a cut via a cut vector x = (x1, . . . , xn), wherexi = 1 if node i belongs to same partition as 1, and 0 else.

For example, the cut {{1, 3, 4}, {2, 5, 6}} can be represented viathe cut vector (1, 0, 1, 1, 0, 0).

Let X be the set of all cut vectors x = (1, x2, . . . , xn).

Let S(x) be the corresponding cost of the cut.

We wish to maximise S(x) via the CE method.

The Cross-Entropy Method forMathematical Programming – p. 20/42

Page 33: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Generation and Updating Formulas

Generation of cut vectors: The most natural and easiestway to generate the cut vectors X i = (1, Xi1, . . . , Xin) is to letXi2, . . . , Xin be independent Bernoulli random variables withsuccess probabilities p2, . . . , pn.

Updating formulas: From CE minimization: the updatedprobabilities are the maximum likelihood estimates of the|E| = ρN elite samples:

pt,j =

Xi∈EXij

|E|, j = 2, . . . , n .

The Cross-Entropy Method forMathematical Programming – p. 21/42

Page 34: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Generation and Updating Formulas

Generation of cut vectors: The most natural and easiestway to generate the cut vectors X i = (1, Xi1, . . . , Xin) is to letXi2, . . . , Xin be independent Bernoulli random variables withsuccess probabilities p2, . . . , pn.

Updating formulas: From CE minimization: the updatedprobabilities are the maximum likelihood estimates of the|E| = ρN elite samples:

pt,j =

Xi∈EXij

|E|, j = 2, . . . , n .

The Cross-Entropy Method forMathematical Programming – p. 21/42

Page 35: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Algorithm

1 Start with p0 = (1, 1/2, . . . , 1/2). Let t := 1.

2 Generate: Draw X1, . . . , XN from Ber(pt). Let γt be

the worst performance of the elite performances.

3 Update pt: Use the same elite sample to calculate

pt,j =

Xi∈EXij

|E|, j = 2, . . . , n ,

where X i = (1, Xi2, . . . , Xin), and increase t by 1.

4 If the stopping criterion is met, then stop;

otherwise set t := t + 1 and reiterate from step 2.

The Cross-Entropy Method forMathematical Programming – p. 22/42

Page 36: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Algorithm

1 Start with p0 = (1, 1/2, . . . , 1/2). Let t := 1.

2 Generate: Draw X1, . . . , XN from Ber(pt). Let γt be

the worst performance of the elite performances.

3 Update pt: Use the same elite sample to calculate

pt,j =

Xi∈EXij

|E|, j = 2, . . . , n ,

where X i = (1, Xi2, . . . , Xin), and increase t by 1.

4 If the stopping criterion is met, then stop;

otherwise set t := t + 1 and reiterate from step 2.

The Cross-Entropy Method forMathematical Programming – p. 22/42

Page 37: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Algorithm

1 Start with p0 = (1, 1/2, . . . , 1/2). Let t := 1.

2 Generate: Draw X1, . . . , XN from Ber(pt). Let γt be

the worst performance of the elite performances.

3 Update pt: Use the same elite sample to calculate

pt,j =

Xi∈EXij

|E|, j = 2, . . . , n ,

where X i = (1, Xi2, . . . , Xin), and increase t by 1.

4 If the stopping criterion is met, then stop;

otherwise set t := t + 1 and reiterate from step 2.

The Cross-Entropy Method forMathematical Programming – p. 22/42

Page 38: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Algorithm

1 Start with p0 = (1, 1/2, . . . , 1/2). Let t := 1.

2 Generate: Draw X1, . . . , XN from Ber(pt). Let γt be

the worst performance of the elite performances.

3 Update pt: Use the same elite sample to calculate

pt,j =

Xi∈EXij

|E|, j = 2, . . . , n ,

where X i = (1, Xi2, . . . , Xin), and increase t by 1.

4 If the stopping criterion is met, then stop;

otherwise set t := t + 1 and reiterate from step 2.

The Cross-Entropy Method forMathematical Programming – p. 22/42

Page 39: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Example

Results for the case with n = 400, m = 200 nodes are givennext.

Parameters: ρ = 0.1, N = 1000 (thus |E| = 100).

The CPU time was only 100 seconds (Matlab, pentium III,500 Mhz).

The CE algorithm converges quickly, yielding the exactoptimal solution in 22 iterations.

The Cross-Entropy Method forMathematical Programming – p. 23/42

Page 40: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Example

Results for the case with n = 400, m = 200 nodes are givennext.

Parameters: ρ = 0.1, N = 1000 (thus |E| = 100).

The CPU time was only 100 seconds (Matlab, pentium III,500 Mhz).

The CE algorithm converges quickly, yielding the exactoptimal solution in 22 iterations.

The Cross-Entropy Method forMathematical Programming – p. 23/42

Page 41: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Example

Results for the case with n = 400, m = 200 nodes are givennext.

Parameters: ρ = 0.1, N = 1000 (thus |E| = 100).

The CPU time was only 100 seconds (Matlab, pentium III,500 Mhz).

The CE algorithm converges quickly, yielding the exactoptimal solution in 22 iterations.

The Cross-Entropy Method forMathematical Programming – p. 23/42

Page 42: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Example

Results for the case with n = 400, m = 200 nodes are givennext.

Parameters: ρ = 0.1, N = 1000 (thus |E| = 100).

The CPU time was only 100 seconds (Matlab, pentium III,500 Mhz).

The CE algorithm converges quickly, yielding the exactoptimal solution in 22 iterations.

The Cross-Entropy Method forMathematical Programming – p. 23/42

Page 43: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Max-Cut

0 50 100 150 200 250 300 350 400 4500

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

The Cross-Entropy Method forMathematical Programming – p. 24/42

Page 44: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Max-Cut

0 50 100 150 200 250 300 350 400 4500

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

The Cross-Entropy Method forMathematical Programming – p. 24/42

Page 45: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Max-Cut

0 50 100 150 200 250 300 350 400 4500

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

The Cross-Entropy Method forMathematical Programming – p. 24/42

Page 46: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Max-Cut

0 50 100 150 200 250 300 350 400 4500

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

The Cross-Entropy Method forMathematical Programming – p. 24/42

Page 47: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Max-Cut

0 50 100 150 200 250 300 350 400 4500

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

The Cross-Entropy Method forMathematical Programming – p. 24/42

Page 48: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Max-Cut

0 50 100 150 200 250 300 350 400 4500

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

The Cross-Entropy Method forMathematical Programming – p. 24/42

Page 49: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Max-Cut

0 50 100 150 200 250 300 350 400 4500

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

The Cross-Entropy Method forMathematical Programming – p. 24/42

Page 50: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Max-Cut

0 50 100 150 200 250 300 350 400 4500

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

The Cross-Entropy Method forMathematical Programming – p. 24/42

Page 51: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Max-Cut

0 50 100 150 200 250 300 350 400 4500

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

The Cross-Entropy Method forMathematical Programming – p. 24/42

Page 52: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Max-Cut

0 50 100 150 200 250 300 350 400 4500

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

The Cross-Entropy Method forMathematical Programming – p. 24/42

Page 53: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Max-Cut

0 50 100 150 200 250 300 350 400 4500

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

The Cross-Entropy Method forMathematical Programming – p. 24/42

Page 54: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Max-Cut

0 50 100 150 200 250 300 350 400 4500

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

The Cross-Entropy Method forMathematical Programming – p. 24/42

Page 55: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Max-Cut

0 50 100 150 200 250 300 350 400 4500

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

The Cross-Entropy Method forMathematical Programming – p. 24/42

Page 56: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Max-Cut

0 50 100 150 200 250 300 350 400 4500

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

The Cross-Entropy Method forMathematical Programming – p. 24/42

Page 57: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Max-Cut

0 50 100 150 200 250 300 350 400 4500

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

The Cross-Entropy Method forMathematical Programming – p. 24/42

Page 58: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Max-Cut

0 50 100 150 200 250 300 350 400 4500

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

The Cross-Entropy Method forMathematical Programming – p. 24/42

Page 59: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Max-Cut

0 50 100 150 200 250 300 350 400 4500

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

The Cross-Entropy Method forMathematical Programming – p. 24/42

Page 60: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Max-Cut

0 50 100 150 200 250 300 350 400 4500

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

The Cross-Entropy Method forMathematical Programming – p. 24/42

Page 61: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Max-Cut

0 50 100 150 200 250 300 350 400 4500

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

The Cross-Entropy Method forMathematical Programming – p. 24/42

Page 62: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Max-Cut

0 50 100 150 200 250 300 350 400 4500

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

The Cross-Entropy Method forMathematical Programming – p. 24/42

Page 63: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Max-Cut

0 50 100 150 200 250 300 350 400 4500

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

The Cross-Entropy Method forMathematical Programming – p. 24/42

Page 64: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Max-Cut

0 50 100 150 200 250 300 350 400 4500

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

The Cross-Entropy Method forMathematical Programming – p. 24/42

Page 65: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Example: Continuous Optimization

-6 -2 2 60

0.5

1

x

S(x)

S(x) = e−(x−2)2 + 0.8 e−(x+2)2

The Cross-Entropy Method forMathematical Programming – p. 25/42

Page 66: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Matlab Program

S = inline(’exp(-(x-2).^2) + 0.8*exp(-(x+2).^2)’);

mu = -10; sigma = 10; rho = 0.1; N = 100; eps = 1E-3;

t=0; % iteration counter

while sigma > eps

t = t+1;

x = mu + sigma*randn(N,1);

SX = S(x); % Compute the performance.

sortSX = sortrows([x SX],2);

mu = mean(sortSX((1-rho)*N:N,1));

sigma = std(sortSX((1-rho)*N:N,1));

fprintf(’%g %6.9f %6.9f %6.9f \n’, t, S(mu),mu, sigma)

end

The Cross-Entropy Method forMathematical Programming – p. 26/42

Page 67: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Numerical Result

-5 0 50

0.2

0.4

0.6

0.8

1

Iteration 1

-5 0 50

0.2

0.4

0.6

0.8

1

Iteration 4

-5 0 50

0.2

0.4

0.6

0.8

1

Iteration 7

-5 0 50

0.2

0.4

0.6

0.8

1

Iteration 10

The Cross-Entropy Method forMathematical Programming – p. 27/42

Page 68: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Example: Constrained Optimization

The nonlinear programming problem is to find x∗ that minimizesthe objective function

S(x) =10∑

j=1

xj

(

cj + lnxj

x1 + · · · + x10

)

,

(the ci are constants) subject to the following set of constraints:

x1 + 2x2 + 2x3 + x6 + x10 − 2 = 0,

x4 + 2x5 + x6 + x7 − 1 = 0,

x3 + x7 + x8 + 2x9 + x10 − 1 = 0,

xj ≥ 0.000001, j = 1, . . . , 10.

The Cross-Entropy Method forMathematical Programming – p. 28/42

Page 69: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

The best known solution in Hock & Schittkowski (TestExamples for Nonlinear Programming Code) was

x∗ = (0.01773548, 0.08200180, 0.8825646, 0.0007233256, 0.4907851,

0.0004335469, 0.01727298, 0.007765639, 0.01984929, 0.05269826),

with S(x∗) = −47.707579. However, using genetic algorithmsMichalewicz (Genetic Algorithm + Data Structures = EvolutionPrograms) finds a better solution:

x∗ = (0.04034785, 0.15386976, 0.77497089, 0.00167479, 0.48468539,

0.00068965, 0.02826479, 0.01849179, 0.03849563, 0.10128126),

with S(x∗) = −47.760765.The Cross-Entropy Method forMathematical Programming – p. 29/42

Page 70: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Using the CE method we can find an even better solution (in lesstime):

x∗ = (0.04067247, 0.14765159, 0.78323637, 0.00141368, 0.48526222,

0.00069291, 0.02736897, 0.01794290, 0.03729653, 0.09685870)

and S(x∗) = −47.76109081 (using ε = 10−4).

The Cross-Entropy Method forMathematical Programming – p. 30/42

Page 71: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

How was it done?

The first step is to reduce the search space by expressingx1, x4, x8 in terms of the other seven variables:

x1 = 2 − (2x2 + 2x3 + x6 + x10),

x4 = 1 − (2x5 + x6 + x7),

x8 = 1 − (x3 + x7 + 2x9 + x10).

Hence, we have reduced the original problem of ten variables tothat of a function of seven variables, which are subject to theconstraints x2, x3, x5, x6, x7, x9, x10 ≥ 0.000001, and

2 − (2x2 + 2x3 + x6 + x10) ≥ 0.000001,

etc.

The Cross-Entropy Method forMathematical Programming – p. 31/42

Page 72: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Next step choose an appropriate rectangular “trust region” R thatcontains the optimal solution.

Draw the samples from a truncated normal distribution (withindependent components) on this space R. Reject the sample ifthe constraints are not satisfied (acceptance–rejection method).

The updating formulas remain the same as for untruncatednormal sampling: update via the mean and variance of the elitesamples.

An alternative is to add a penalty term to S.

The Cross-Entropy Method forMathematical Programming – p. 32/42

Page 73: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Cross-Entropy: Some Theory

Let X1, . . . , XN be a random sample from f(·; vt−1).Let γt be the (1 − ρ) quantile of the performance:

ρ = Pvt−1(S(X) ≥ γt), with X ∼ f(·; vt−1).

Consider now the rare event estimation problem where weestimate ρ via Importance Sampling:

ρ =1

N

N∑

i=1

I{S(Xi)≥γt}f(X i; vt−1)

g(X i),with X1, . . . , XN ∼ g(·).

A zero variance estimator is g∗(x) :=I{S(x)≥γt}

f(x;vt−1)

ρ.

Problem: g∗ depends on the unknown ρ.

The Cross-Entropy Method forMathematical Programming – p. 33/42

Page 74: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Idea: Update vt such that the “distance” between the densitiesg∗ and f(·; vt) is minimal.

The Kullback-Leibler or cross-entropy distance is definedas:

D(g, h) = Eg logg(X)

h(X)

=

g(x) log g(x) dx −

g(x) log h(x) dx .

Determine the optimal vt from minv D(g∗, f(·; v)) .

This is equivalent to solving maxv Evt−1 I{S(X)≥γt} log f(X ; v) .

The Cross-Entropy Method forMathematical Programming – p. 34/42

Page 75: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Idea: Update vt such that the “distance” between the densitiesg∗ and f(·; vt) is minimal.

The Kullback-Leibler or cross-entropy distance is definedas:

D(g, h) = Eg logg(X)

h(X)

=

g(x) log g(x) dx −

g(x) log h(x) dx .

Determine the optimal vt from minv D(g∗, f(·; v)) .

This is equivalent to solving maxv Evt−1 I{S(X)≥γt} log f(X ; v) .

The Cross-Entropy Method forMathematical Programming – p. 34/42

Page 76: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Idea: Update vt such that the “distance” between the densitiesg∗ and f(·; vt) is minimal.

The Kullback-Leibler or cross-entropy distance is definedas:

D(g, h) = Eg logg(X)

h(X)

=

g(x) log g(x) dx −

g(x) log h(x) dx .

Determine the optimal vt from minv D(g∗, f(·; v)) .

This is equivalent to solving maxv Evt−1 I{S(X)≥γt} log f(X ; v) .

The Cross-Entropy Method forMathematical Programming – p. 34/42

Page 77: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Idea: Update vt such that the “distance” between the densitiesg∗ and f(·; vt) is minimal.

The Kullback-Leibler or cross-entropy distance is definedas:

D(g, h) = Eg logg(X)

h(X)

=

g(x) log g(x) dx −

g(x) log h(x) dx .

Determine the optimal vt from minv D(g∗, f(·; v)) .

This is equivalent to solving maxv Evt−1 I{S(X)≥γt} log f(X ; v) .

The Cross-Entropy Method forMathematical Programming – p. 34/42

Page 78: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

We may estimate the optimal solution vt by solving thefollowing stochastic counterpart:

maxv

1

N

N∑

i=1

I{S(Xi)≥γt} log f(X i; v) ,

where X1, . . . , XN is a random sample from f(·; vt−1).Alternatively, solve:

1

N

N∑

i=1

I{S(Xi)≥γt} ∇ log f(X i; v) = 0,

where the gradient is with respect to v.

The Cross-Entropy Method forMathematical Programming – p. 35/42

Page 79: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

The solution to the CE program can often be calculatedanalytically (Maximum Likelihood Estimator!).

Note that the CE program is useful only when under vt−1

the event {S(X) ≥ γt} is not too rare, say ρ ≥ 10−3.

By iterating over t we obtain a sequence of reference parameters{vt, t ≥ 0} → v∗ and a sequence of levels {γt, t ≥ 1} → γ∗.

The Cross-Entropy Method forMathematical Programming – p. 36/42

Page 80: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

The solution to the CE program can often be calculatedanalytically (Maximum Likelihood Estimator!).

Note that the CE program is useful only when under vt−1

the event {S(X) ≥ γt} is not too rare, say ρ ≥ 10−3.

By iterating over t we obtain a sequence of reference parameters{vt, t ≥ 0} → v∗ and a sequence of levels {γt, t ≥ 1} → γ∗.

The Cross-Entropy Method forMathematical Programming – p. 36/42

Page 81: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

The solution to the CE program can often be calculatedanalytically (Maximum Likelihood Estimator!).

Note that the CE program is useful only when under vt−1

the event {S(X) ≥ γt} is not too rare, say ρ ≥ 10−3.

By iterating over t we obtain a sequence of reference parameters{vt, t ≥ 0} → v∗ and a sequence of levels {γt, t ≥ 1} → γ∗.

The Cross-Entropy Method forMathematical Programming – p. 36/42

Page 82: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

The solution to the CE program can often be calculatedanalytically (Maximum Likelihood Estimator!).

Note that the CE program is useful only when under vt−1

the event {S(X) ≥ γt} is not too rare, say ρ ≥ 10−3.

By iterating over t we obtain a sequence of reference parameters{vt, t ≥ 0} → v∗ and a sequence of levels {γt, t ≥ 1} → γ∗.

The Cross-Entropy Method forMathematical Programming – p. 36/42

Page 83: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

The solution to the CE program can often be calculatedanalytically (Maximum Likelihood Estimator!).

Note that the CE program is useful only when under vt−1

the event {S(X) ≥ γt} is not too rare, say ρ ≥ 10−3.

By iterating over t we obtain a sequence of reference parameters{vt, t ≥ 0} → v∗ and a sequence of levels {γt, t ≥ 1} → γ∗.

The Cross-Entropy Method forMathematical Programming – p. 36/42

Page 84: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Updating Example

Suppose X has iid exponential components:

f(x; v) = exp

(

5∑

j=1

xj

vj

)

5∏

j=1

1

vj

.

The optimal v follows from the system of equations

N∑

i=1

I{S(Xi)≥γ} W (X i; u, w)∇ log f(X i; v) = 0.

Since∂

∂vj

log f(x; v) =xj

v2j

−1

vj

,

The Cross-Entropy Method forMathematical Programming – p. 37/42

Page 85: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

we have for the jth equation

N∑

i=1

I{S(Xi)≥γ}

(

Xij

v2j

−1

vj

)

= 0 ,

whence,

vj =

∑N

i=1 I{S(Xi)≥γ}Xij∑N

i=1 I{S(Xi)≥γ}

,

Thus the updating rule is here to take the mean of the elitesamples (MLE).

The Cross-Entropy Method forMathematical Programming – p. 38/42

Page 86: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Conclusions

The CE method optimizes the sampling distribution.

Advantages:

Universally applicable (discrete/continuous/mixedproblems)

Very easy to implement

Easy to adapt, e.g. when constraints are added

Works generally well

Disadvantages:

It is a generic method

Performance function should be relatively cheap

Tweaking (modifications) may be required

The Cross-Entropy Method forMathematical Programming – p. 39/42

Page 87: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Discussion + Further Research

Synergies with related fields need to be further developed:

Evolutionary Algorithms

Stochastic Approximation

Simulated Annealing

Probability Collectives

Reinforcement Learning

Bayesian Inference

(Multi-actor) game theory

The Cross-Entropy Method forMathematical Programming – p. 40/42

Page 88: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Discussion + Further Research

Convergence properties need to be further examined:

Continuous optimization (e.g., Thomas Taimre’s thesis)

Rare event simulation (Homem-de-Melo, Margolin)

Significance of various modifications

Role of the sampling distribution

Noisy optimization: very little needs to be changed!

Test problems and “best” code need to be made available:

CE Toolbox: www.maths.uq.edu.au/CEToolBox

The Cross-Entropy Method forMathematical Programming – p. 41/42

Page 89: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Acknowledgements

Zdravko Botev, Jenny Liu, Sho Nariai, Thomas Taimre

Phil Pollett

Thank You!

The Cross-Entropy Method forMathematical Programming – p. 42/42

Page 90: The Cross-Entropy Method for Mathematical Programming · Multi-Extremal Continuous Optimization Pattern Recognition, Clustering and Image Analysis Production Lines and Project Management

Acknowledgements

Zdravko Botev, Jenny Liu, Sho Nariai, Thomas Taimre

Phil Pollett

Thank You!

The Cross-Entropy Method forMathematical Programming – p. 42/42