global optimization simulated...

44
Global Optimization Simulated Annealing Annalisa Massini Calcolo Intensivo 2013/2014

Upload: voque

Post on 24-Jul-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Global Optimization

Simulated Annealing

Annalisa Massini Calcolo Intensivo

2013/2014

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

Simulated

annealing

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

Esempio di inversione

Esempi di inserimento

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

Esempio

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

Inserimento

Funzioni analoghe al caso dell’inversione.