# Documentation/Optimization: Unterschied zwischen den Versionen

Wechseln zu: Navigation, Suche

# Optimization

## Introduction

Optimization searches for the best solution x* to a problem and can be defined as

```  x* = argmin (f(x))
```

where f is the function to be optimized (the objective function) and x are the design variables for which optimal settings have to be found.

This definition can be extended to multiple objectives f and by constraints.

## Some Important Expressions

### Manual vs. Automated Optimization

Optimization is an everyday task. For example, searching the fastest way to work or home is an optimization problem. We speak about automated optimization, if a computer algorithm solves the problem in an automated fashion, i.e. without user interaction.

### Objective Function

Optimization typically searches for the optimal solution to a problem. For automated optimization, the problem must be encoded in a mathematical function f, which has to be either minimized or maximized. In OpenDino, only minimization is considered as maximization can be expressed as:

```   max(f) = - min(-f)
```

### Design Variables

The optimal solution is searched by modifying the design variables x. The objective function depends on the design variables: f = f(x).

### Multiple Objectives

If multiple objectives f should be optimized, then a multi-objective optimization problem has to be solved. Some optimization algorithms search concurrently for multiple compromise solutions for the objectives (Pareto optimization) or a single compromise solution, defined as a weighed sum of all objectives.

### Constraints

While the optimization algorithm tries to minimize all objectives, constraints simply have to be fulfilled.

For example, the maximal stress in a truss should not exceed a certain limit. If the stress is below the limit, no advantage is gained. If the stress is above the limit, the solution is typically constrained by a penalty value, which increases with increasing constraint violation.

### Direct vs. Indirect Search

In OpenDino, we implement optimization algorithms that search a problem in an iterative fashion, i.e. by computing several different solutions to the problem. The best solution is returned. This iterative search can be either direct or indirect:

Direct search uses only direct information (i.e. the objective and constraint value(s). Indirect algorithms use indirect information (i.e. gradient and/or higher order derivative information of the objective(s) and constraint(s)).

### Stochastic vs. Deterministic Algorithms

While stochastic algorithms such as Evolutionary Algorithms and Particle Swarm use random values in their search method, deterministic algorithms like the Simplex Method or gradient based search do not.