Skip to content

Commit cb0d2a5

Browse files
authored
Update algorithm.md
1 parent 69b04a3 commit cb0d2a5

File tree

1 file changed

+7
-21
lines changed

1 file changed

+7
-21
lines changed

docs/src/algorithm.md

+7-21
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,13 @@ The strength of the DIRECT algorithm lies in its ability to systematically explo
66

77
Additionally, by not requiring the Lipschitz constant, the DIRECT algorithm is adaptable to various optimization problems, including those where the smoothness of the objective function is not well understood.
88

9-
---
10-
119
- The figure below shows the DIRECT method after 16 iterations on the Branin function. The cells are much denser around the minima of the Branin function because the DIRECT method is designed to increase its resolution in promising regions.
1210

1311
![page_11](https://github.com/user-attachments/assets/b833bedd-41aa-40c5-a27f-26188a171797)
1412

15-
---
16-
17-
### Key Concepts of the DIRECT Algorithm
13+
## Key Concepts of the DIRECT Algorithm
1814

19-
1. **Search Space**:
15+
### **Search Space**:
2016

2117
- The algorithm minimizes an objective function f(x) over a hyper-rectangular search space.
2218
- The search space is normalized to the unit hypercube to avoid oversensitivity to dimensions with larger domains. If minimizing $f(x)$ in the interval between lower and upper ranges $a$ and $b$, DIRECT will instead minimize:
@@ -30,17 +26,16 @@ After finding the minimum $x^*$ of $g$, The minimizer of $f$ is:
3026
```math
3127
\mathbf{x}^* \odot (\mathbf{b} - \mathbf{a}) + \mathbf{a}
3228
```
33-
---
3429

35-
2. **Function Evaluation**:
30+
### **Function Evaluation**:
3631
- DIRECT partitions its search space into hyperrectangular intervals.
3732
- The objective function is evaluated at the center of each hyper-rectangle.
3833
- Each interval has a center $c^{(i)}$, an associated objective function value $f(c^{(i)})$, and a radius $r^{(i)}$. The radius is the distance from the center to a vertex.
3934

40-
4. **Selection of Potentially Optimal Rectangles**:
35+
### **Selection of Potentially Optimal Rectangles**:
4136
- In each iteration, the algorithm identifies potentially optimal rectangles. A rectangle is considered potentially optimal if it could contain the global minimum based on the evaluations performed so far.
4237

43-
### Lipschitz Lower Bound:
38+
## Lipschitz Lower Bound:
4439

4540
- The Lipschitz lower bound for an interval is a circular cone extending downward from its center $c^{(i)}$.
4641

@@ -52,8 +47,6 @@ After finding the minimum $x^*$ of $g$, The minimizer of $f$ is:
5247
```math
5348
f(c^{(i)}) - \ell r^{(i)}
5449
```
55-
---
56-
5750
- The left plot shows the intervals for the DIRECT method after 5 iterations on the Branin function. The right plot shows the interval objective function values versus their radii, which is useful for identifying intervals to split with further evaluations.
5851

5952
![page_12](https://github.com/user-attachments/assets/34da1f5e-c983-45cc-8b6c-531184d4b756)
@@ -66,22 +59,16 @@ f(c^{(i)}) - \ell r^{(i)}
6659

6760
![page_14](https://github.com/user-attachments/assets/7df39f70-2ef2-4eaa-a5de-54f93d21e653)
6861

69-
---
70-
71-
5. **Recursive Division**:
62+
### **Recursive Division**:
7263
- The selected rectangles are further divided, splitting into thirds along the axis directions. The order in which dimensions are split matters; lower function evaluations receive larger sub-rectangles. The process continues recursively, refining the search by focusing on the most promising regions.
7364

74-
6. **Convex Hull**:
65+
### **Convex Hull**:
7566
- The DIRECT method selects all intervals for which a Lipschitz constant exists such that their lower bounds have minimal value. These intervals form a piecewise-linear boundary along the lower-right of the $(r, f(c))$ space.
7667

77-
---
78-
7968
- The left plot shows the split intervals identified for this iteration of DIRECT on the Branin function. The right plot shows the lower-right convex hull formed by these split intervals in $(r, f(c))$ space.
8069

8170
![page_15](https://github.com/user-attachments/assets/5142788b-814e-4221-b50f-1746672278df)
8271

83-
---
84-
8572
## Splitting Intervals
8673

8774
When splitting a region without equal side lengths, only the longest dimensions are split. Splitting proceeds on these dimensions in the same manner as with a hypercube. The width in a given dimension depends on how many times that dimension has been split. Since DIRECT always splits axis directions by thirds, a dimension
@@ -90,7 +77,6 @@ that has been split $d$ times will have a width of $3^{−d}$. If we have $n$ di
9077
```math
9178
r = \left\|\left[ \frac{1}{2 \cdot 3^{-d_1}}, \dots, \frac{1}{2 \cdot 3^{-d_n}} \right]\right\|_2
9279
```
93-
---
9480
- **Interval splitting in multiple dimensions for DIRECT** requires choosing an ordering for the split dimensions:
9581

9682
![page_16](https://github.com/user-attachments/assets/962993d9-372a-4733-9d1f-0260cdacdff1)

0 commit comments

Comments
 (0)