Skip to content

Commit

Permalink
Update algorithm.md
Browse files Browse the repository at this point in the history
  • Loading branch information
Aero-Spec authored Sep 22, 2024
1 parent 69b04a3 commit cb0d2a5
Showing 1 changed file with 7 additions and 21 deletions.
28 changes: 7 additions & 21 deletions docs/src/algorithm.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,13 @@ The strength of the DIRECT algorithm lies in its ability to systematically explo

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.

---

- 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.

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

---

### Key Concepts of the DIRECT Algorithm
## Key Concepts of the DIRECT Algorithm

1. **Search Space**:
### **Search Space**:

- The algorithm minimizes an objective function f(x) over a hyper-rectangular search space.
- 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:
Expand All @@ -30,17 +26,16 @@ After finding the minimum $x^*$ of $g$, The minimizer of $f$ is:
```math
\mathbf{x}^* \odot (\mathbf{b} - \mathbf{a}) + \mathbf{a}
```
---

2. **Function Evaluation**:
### **Function Evaluation**:
- DIRECT partitions its search space into hyperrectangular intervals.
- The objective function is evaluated at the center of each hyper-rectangle.
- 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.

4. **Selection of Potentially Optimal Rectangles**:
### **Selection of Potentially Optimal Rectangles**:
- 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.

### Lipschitz Lower Bound:
## Lipschitz Lower Bound:

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

Expand All @@ -52,8 +47,6 @@ After finding the minimum $x^*$ of $g$, The minimizer of $f$ is:
```math
f(c^{(i)}) - \ell r^{(i)}
```
---

- 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.

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

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

---

5. **Recursive Division**:
### **Recursive Division**:
- 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.

6. **Convex Hull**:
### **Convex Hull**:
- 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.

---

- 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.

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

---

## Splitting Intervals

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
Expand All @@ -90,7 +77,6 @@ that has been split $d$ times will have a width of $3^{−d}$. If we have $n$ di
```math
r = \left\|\left[ \frac{1}{2 \cdot 3^{-d_1}}, \dots, \frac{1}{2 \cdot 3^{-d_n}} \right]\right\|_2
```
---
- **Interval splitting in multiple dimensions for DIRECT** requires choosing an ordering for the split dimensions:

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

0 comments on commit cb0d2a5

Please sign in to comment.