global optimization simulated...
TRANSCRIPT
Global optimization
Global optimization is the branch of applied mathematics
and numerical analysis that focuses on optimization.
The goal of global optimization is to find the best
possible elements x⋆ from a set X according to a set of
criteria F = {f1, f2, .., fn}.
These criteria are expressed as mathematical functions,
the so-called objective functions.
Definition (Objective Function)
An objective function f : X → Y with Y ⊆ R is a
mathematical function which is subject to optimization.
Global optimization
The codomain Y of an objective function as well as its
range must be a subset of the real numbers (Y ⊆ R).
The domain X of f is called problem space and can
represent any type of elements like numbers, lists,
construction plans, and so on.
Objective functions are not necessarily mathematical
expressions, but can be complex algorithms that, for
example, involve multiple simulations.
Global optimization comprises all techniques that
can be used to find the best elements x⋆ in X with
respect to criteria f ∈ F.
Global optimization
What is an optimum?
We have already said that global optimization is about
finding the best possible solutions for given problems.
Thus, it cannot be a bad idea to understand what makes
a solution optimal
Global optimization
We distinguish between local and global optima.
A global optimum is an optimum of the whole domain
X while a local optimum is an optimum of only a subset
of X.
Global optimization
Single Objective Functions
In the case of optimizing a single criterion f, an optimum
is either its maximum or minimum.
If we own a manufacturing plant and have to assign
incoming orders to machines, we will do this in a way
that minimizes the time needed to complete them.
On the other hand, we will arrange the purchase of raw
material in a way that maximizes our profit.
Global optimization
Multiple Objective Functions
In many real-world design or decision making problems,
global optimization techniques are applied to sets F
consisting of n = |F| objective functions fi, each
representing one criterion to be
F = {fi : X → Yi : 0 < i ≤ n, Yi ⊆ R}
Algorithms designed to optimize such sets of objective
functions are usually named multi-objective
Multi-objective optimization processes can be
transformed into single-objective minimization
processes: x1 ≻ x2 ⇔ cmpF (x1, x2) < 0.
Global optimization
Minimization
Many optimization algorithms have been developed for
single-objective optimization in their original form,
minimization or maximization.
In global optimization, it is a convention that problems
are most often defined as minimizations and if f is
subject to maximization, we minimize its negation −f.
Global optimization
Generally, optimization algorithms can be divided in two
basic classes: deterministic and probabilistic
algorithms.
Deterministic algorithms are most often used if a clear
relation between the characteristics of the possible
solutions and their utility for a given problem exists.
Then, the search space can efficiently be explored
using for example a divide and conquer scheme.
Global optimization
Probabilistic algorithms are use if the relation between
a solution candidate and its “fitness” are not so obvious
or too complicated, or the dimensionality of the search
space is very high, that is when the problem becomes
harder to be solved deterministically.
Trying it would possible result in exhaustive
enumeration of the search space, which is not
feasible even for relatively small problems.
Global optimization
Heuristics used in global optimization are functions that
help decide which one of a set of possible solutions is to
be examined next.
Deterministic algorithms usually employ heuristics in
order to define the processing order of the solution
candidates.
Probabilistic methods may only consider those
elements of the search space in further computations
that have been selected by the heuristic.
Global optimization
Definition A heuristic is a part of an optimization
algorithm that uses the information currently gathered by
the algorithm to help to decide which solution candidate
should be tested next or how the next individual can be
produced.
Definition A metaheuristic is a method for solving very
general classes of problems. It combines objective
functions or heuristics in an abstract and hopefully
efficient way, usually without utilizing deeper insight into
their structure, i. e., by treating them as black-box-
procedures.
Global optimization
The taxonomy (deterministic – probabilistic) classifies
the optimization methods according to their algorithmic
structure and underlying principles, that is from the
viewpoint of theory.
A user who wants to solve a problem is however more
interested in features such as speed and precision.
Speed and precision are conflicting objectives, at least
in terms of probabilistic algorithms.
A general rule of thumb is that you can gain
improvements in accuracy of optimization only by
investing more time.
Global optimization
There are some further common semantics and
operations that are shared by most optimization
algorithms.
Many of them, for instance, start out by randomly
creating some initial individuals which are then
refined iteratively.
Optimization processes which are not allowed to run
infinitely have to find out when to terminate.
Global optimization
Iterations
Global optimization algorithms often iteratively evaluate
solution candidates in order to approach the optima.
We distinguish between evaluations τ and iterations t.
Definition (Evaluation). The value τ ∈ N denotes the
number of solution candidates for which the set of
objective functions F has been evaluated.
Definition (Iteration). An iteration refers to one round
in a loop of an algorithm. It is one repetition of a
specific sequence of instruction inside an algorithm.
Global optimization
Algorithms are referred to as iterative if most of their
work is done by cyclic repetition of one main loop.
In this context, an iterative optimization algorithm:
starts with the first step t = 0.
the value t ∈ N is the index of the iteration currently
performed by the algorithm
t + 1 refers to the following step
In some optimization algorithms like genetic algorithms,
for instance, iterations are referred to as generations.
Many global optimization algorithms generate and
evaluate a number of individuals per generation.
Global optimization
Termination Criterion
Some possible criteria that can be used to decide
whether an optimizer should terminate or not are:
maximum computation time
If this time has been exceeded, the optimizer should stop.
Note that the time needed for single individuals may vary, and
so will the times needed for iterations
total number of iterations ˆt or individual evaluations ˆτ
used when you want to know if a qualitatively interesting
solution can be found for a given problem using at most a
predefined number of samples from the problem space
Global optimization
Termination Criterion
Some possible criteria that can be used to decide
whether an optimizer should terminate or not are:
No improvement in the solution quality could be detected
for a specified number of iterations
The process has converged to a (hopefully good) solution
The optimization process has already yielded a sufficiently
good solution
22
Il simulated annealing
Analogia con il processo di solidificazione di un metallo
fuso:
a partire dal metallo fuso
la temperatura viene abbassata lentamente
il sistema transita da uno stato energetico al
successivo
fino a quando il metallo solidifica nello stato di minima
energia
Physical annealing
STATO 1 STATO 2 STATO n0
...
STATO n1
...
STATO nc
...
ENERGIA
Equilibrio a temperatura Tmax
Equilibrio a T1<T
max
Stato di minima energia
Equilibrio a Tmin
MAX
MIN
MAX MIN
24
Il sistema viene portato alla temperatura di fusione
Il sistema transita dallo stato i allo stato j che viene
ottenuto perturbando lo stato i
La transizione avviene seguendo il criterio di
Metropolis
Tk
EEP
B
jiexp
• La temperatura deve essere abbassata lentamente in modo che il solido raggiunga l’equilibrio termico ad ogni temperatura.
Passi salienti del processo fisico
Modello matematico
perturbazione generatore di configurazioni x
temperatura parametro di controllo T
minima energia ottimo globale
criterio di Metropolis
raffreddamento funzione di T decrescente
energia dello stato f(x)
stato del sistema x
) se
)()(exp
) se1
}{f(i>f(j)
T
jfif
f(if(j)
jPT
Simulated annealing
L’algoritmo di Metropolis è stato applicato per trovare
soluzioni a svariati problemi di ottimizzazione.
Problema del commesso viaggiatore (Travelling Salesman
Problem, TSP):
dato un grafo orientato pesato, individuare il ciclo
hamiltoniano di peso minimo.
Un ciclo è un cammino chiuso sul grafo.
Un ciclo è hamiltoniano se passa per tutti i vertici del
grafo.
A
C
B
E
D
Simulated annealing
TSP rappresenta una vasta classe di problemi di
ottimizzazione combinatoria (NP-completa).
L’energia dell’annealing è rappresentata da una funzione
costo che si vuole minimizzare, che nel caso di TSP è la
lunghezza del percorso.
Gli stati sono le soluzioni possibili del problema di minimo.
Simulated annealing
Per usare l’algoritmo di Metropolis per trovare la soluzione di un problema di ottimizzazione combinatoria, occorre:
Descrivere le possibili configurazioni del sistema
Stabilire la funzione costo
Stabilire il parametro di controllo (temperatura) T
Per TSP:
Indichiamo ogni città con un intero i=1,…,N
Ogni città è posizionata nel piano a coordinate (xi,yi)
Una configurazione del sistema è semplicemente una permutazione dei numeri 1,…, N
Simulated annealing
La funzione costo può essere scelta come la
lunghezza totale del percorso:
con la convenzione che il punto N+1 coincida con il
primo
1
1
21
21 )()()(
N
i
iiiik yyxxSf
Schema generale
Input
Una configurazione casuale
Una temperatura iniziale legata alla variazione
massima della funzione costo
Una temperatura da raggiungere
Si eseguono una serie di iterazioni fino a quando non si
raggiunge la temperatura obiettivo
Ad ogni iterazione si esegue un numero fissato di
passi, cioè di perturbazioni della configurazione.
Schema generale
Più in dettaglio, ad ogni passo:
Si seleziona il tipo di perturbazione, in modo casuale
Si calcola la variazione della funzione costo
Si calcola la condizione di Metropolis
Se la condizione è verificata si cambia configurazione
e si aggiorna il valore della funzione costo
Simulated annealing
Il tipo di perturbazione introdotta per modificare uno stato
influenza il tipo di ricerca locale che si adotta ad ogni
iterazione con una prefissata temperatura.
Perturbare uno stato vuol dire decidere tra quali stati
vicini (in quale intorno) si cerca il minimo della funzione
costo.
Le perturbazioni proposte da S. Lin (1965) risultate efficaci
per la soluzione del problema sono:
Inversione di una parte del cammino
Inserimento di una parte del cammino tra vertici diversi
da effettuare in base alla valutazione della funzione costo
Realizzazione del programma
Un grafo rappresentato tramite la sua matrice di
adiacenza.
Ad ogni nodo del grafo sono associate coordinate
cartesiane.
Le distanze tra le città verranno usate più volte.
E’ conveniente generare la matrice delle distanze in cui
l’elemento (i,j) rappresenta la distanza tra le città i e j.
Realizzazione del programma
Poste in CO_V le coordinate dei nodi del grafo, la matrice delle distanze può essere calcolata come segue:
ncitta=8;
x=CO_V(:,1);
y=CO_V(:,2);
for nci=1:ncitta
xx=CO_V(nci,1);
yy=CO_V(nci,2);
distanze(nci:ncitta,nci)=(sqrt((x(nci:ncitta)-xx).^2+(y(nci:ncitta)-yy).^2));
distanze(nci,nci:ncitta)=distanze(nci:ncitta,nci)';
end
Realizzazione del programma
Il cammino su un grafo è semplicemente una
permutazione dei nodi del grafo.
Si può memorizzare il cammino su un grafo su un
vettore.
Il cammino iniziale può essere generato in Matlab con
la funzione randperm
Realizzazione del programma
while Temp>= Tf
nsucc=0; % contatore successi
k=0
while k<= npassi
% scelta percorso con almeno tre città
nn=0
while nn<3 | nn>=ncitta-1
n=1+floor(ncitta*rand(2,1));
nn=rem(n(1)-n(2)+ncitta-1,ncitta);
% scelta della mossa: inversione o inserimento
if rand >0.5 % se rand >0.5 allora si inverte
df=invert_c (n, p,ncitta); % invert_c calcola la variazione di costo
if metropolis(df,Temp)
nsucc=nsucc+1; lbest=lbest+1;
p=invert (n, p,ncitta); % invert inverte il tratto di cammino
end
Realizzazione del programma
else % inserisce percorso in posizione diversa
ns=n(2)+floor((nn-1)*rand+1);
if ns>ncitta
ns=rem(ns,ncitta);
end
df=insert_c(n,ns,ncitta,p);
if metropolis(df,Temp)
nsucc=nsucc+1; lbest=lbest+1;
p=insert (n, ns,ncitta,p); % insert cammino in posizione diversa
end
end
if nsucc>max_nsucc
break
end
k=k+1
Temp=Tfatt*Temp % Tfatt<1 valore per diminuire la temperatura
…
end
Test di metropolis
function esito=metropolis(df,Temp)
% regola di metropolis:
% esito=0 rifiuta mossa
% esito=1 accetta mossa
if df>0
esito=1;
elseif exp(-df/Temp)>rand
esito=1;
else
esito=0;
end
Inversione
function pn=invert(n,p,ncittà)
% inverte un tratto di percorso
% Ingresso:
% n estremi segmento da invertire
% p percorso attuale
% ncitta numero di vertici
% Uscita:
% pn nuovo percorso
function df=invert_c(n,p,ncittà)
% calcola la variazione della funzione costo nel caso di
% inversione di un tratto di percorso
% Ingresso: come sopra
% Uscita:
% df variazione funzione costo