Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
1
Marco [email protected]
Outline
• Panoramica su CP e ACO• Integrazione tra i due approcci: ACO
come algoritmo che apprende un’euristica
• Principi architetturali del framework di integrazione
• Problemi aperti e spunti futuri
2
Obiettivo
• A. Ernst B. Meyer. Integrating aco and constraint propagation. Ants ‘04, pages 166-177, 2004.
Integrazione di un Constraint Solver con la tecnica di ricerca
locale ispirata al comportamento delle formiche
COP
• Constraint Optimization Problem:– Insieme di variabili X1,…,Xn
– Insieme di domini non vuoti associati alle variabili D1,…,Dn
– Insieme di vincoli che legano le variabili – Funzione obiettivo F(X1,…,Xn)
• Soluzione: un insieme di assegnamenti che ottimizza la funzione obiettivo e soddisfa i vincoli
3
Vantaggi di CP
• Da un punto di vista espressivo:– Linguaggio standard e generale per
rappresentare concisamente un problema– scomposizione del problema in sottoproblemi
(es: vincoli globali)• Da un punto di vista della ricerca:
– Constraint solver general-purpose per il trattamento efficiente dell’interazione fra variabili
Propagazione dei vincoli• Il constraint solver si occupa di propagare i
vincoli:
• In caso di vicolo cieco: backtracking• Realizza un efficiente meccanismo per
trovare velocemente una soluzione feasible
Alterazione del dominio della variabile V
Propagazione dell’alterazionesui domini delle variabili legate a V
tramite uno o più vincoli
Processo acascata
4
Ricerca locale
• Vasta gamma di problemi NP-difficili intrattabili con algoritmi completi
• Ci si accontenta di trovare soluzioni sub-ottimali ricorrendo a tecniche di ricerca locale
Colonie di formiche
• Le colonie di formiche, come altri insetti sociali, mostrano forme di intelligenza collettiva
• Pur essendo composta da individui relativamente semplici, una colonia ècapace di convergere sul percorso ottimo tra il formicaio e una fonte di cibo
• Tale comportamento emergente si manifesta grazie a una forma di interazione indiretta basata sul deposito di feromone nell’ambiente (stigmergia)
5
Il doppio ponte
• Evaporazione del feromone – τ(i+1)←(1-ρ)τ(i)– Neutralizza le fluttuazioni iniziali
ACO
• La metafora naturale delle formiche alla ricerca di cibo viene impiegata in ottimizzazione combinatoria– Ant Colony Optimization come tecnica di
ricerca locale costruttiva– ACO è una metaeuristica (indipendente dal
problema)• L’ambiente è in questo caso costituito dal
grafo (o albero) che rappresenta il problema
6
Algoritmo generale
InitializePheromoneValues()while termination condition not met dofor all ants in Colony do
sa←constructSolution()endforapplyDelayedOnlinePheromoneUpdate()
endwhile Evaporazione+
Aggiornamento ritardato(politica globale sulle soluzioni trovate)
Scelta del percorso
• Ci mettiamo nel caso in cui:– feromone associato ai nodi– Non si considera la funzione euristica
presente nella definizione classica
• Probabilità di transizione verso X1
Dove X1,...,Xn sono i nodi raggiungibili attualmente
. . .
X1
X2
X3∑=
= n
iX
X
i
Xp
1
11)(
α
α
τ
τ
7
Commenti su ACO
• Ogni formica effettua un tour sul grafo (albero) del problema costruendo una soluzione
• Quando tutte le formiche hanno terminato il tour– Viene applicata una politica di aggiornamento del
feromone, considerando le soluzioni trovate– Viene applicato un meccanismo di evaporazione del
feromone (indipendente dall’azione delle formiche)• A fronte di fluttuazioni iniziali, le formiche tendono
successivamente a convergere su un percoso (sub)ottimale
Considerazioni
•Efficiente nel convergere su una soluzione (sub)ottimale in spazi di ricerca ampi, visitandone solo una porzione •Carente nel trattare hard constraints
•Efficiente nel trovare soluzioni ammissibili per problemi hard constrained
•Carente nel trovare soluzioni ottime nel caso di ampio spazio delle soluzioni
ACOCP
CP+ACO
8
Ambiente di riferimento
• Ambiente: albero degli assegnamenti
v11 v1k
v21 v22
vkn
. . .
X1
X2
Xn
. . .
Assegnamento della variabile X2 al
valore v22
Raggiungimento di una fogliaogni variabile viene assegnata a un valoresoluzione trovata
Modello concettuale 1/2• Ogni nodo è associato a una quantità di feromone• Una formica si muove dalla radice alle foglie• La scelta del prossimo nodo è effettuata
probabilisticamente seguendo la solita legge• Quando la formica si muove su un nodo, il
corrispondente assegnamento viene propagato dal constraint solver
• Quindi le mosse successive possono essere effettuate solo all’interno della porzione di albero che mantiene la feasibility di tutti i vincoli rispetto alle scelte precedenti
• In caso di vicolo cieco, la formica effettua backtracking
9
Modello concettuale 2/2
• Quando tutte le formiche hanno costruito una soluzione, viene applicata una politica di aggiornamento+evaporazione
• In aggiunta, ogni volta che una formica arriva su un nodo (ovvero viene effettuato un assegnamento) si verifica un fenomeno di evaporazione locale al nodo
• Il constraint solver si occupa dell’ammissibilità, le formiche dell’ottimalità
Parametri
• Numero di formiche (dimensione della colonia)
• Numero di cicli (condizione di terminazione)• α (che condiziona la velocità di
convergenza)• ρ (parametro per l’evaporazione)• Politica di aggiornamento
10
Realizzazione 1/2
• Euristiche generali utilizzabili da un constraint solver:– Selezione della variabile
• Quale variabile scegliamo per il prossimo assegnamento?
– Selezione del valore• Quale valore proviamo per la variabile
scelta?
Realizzazione 2/2
• Nel nostro caso:– Selezione della variabile: ordine
lessicografico– Selezione del valore: criterio
probabilistico che • segue la legge di ACO per le transizioni
(transizione=decisione del valore della prossima variabile)
• realizza l’evaporazione locale• Formica ricerca di una soluzione con
queste euristiche
11
ACO per apprendere un’euristica• Per ogni ciclo:
– Vengono collezionate n soluzioni lanciando n volte la ricerca con le euristiche descritte
– Viene applicata la politica di aggiornamento + evaporazione
• Al ciclo successivo, l’euristica per la selezione del valore si comporterà in maniera differente
• Così come le formiche tendono a convergere su un percorso (sub)ottimale, l’euristica sul valore tende a migliorarsi
Implementazione
• Piattaforma in JAVA per:– L’inserimento di un problema a vincoli– Il setting dei parametri– L’esecuzione dell’algoritmo ibrido– La visualizzazione dei risultati
• Constraint Solver: CHOCO– Progetto open-source completamente in
JAVA– In via di sviluppo (nella versione beta alcuni
vincoli globali)
12
Estensione di CHOCO
• Separazione del problema dalla funzione obiettivo (CHOCO gestisce solo l’ammissibilità, quindi un CSP)
Acquisizione del problema
• L’oggetto Problem di CHOCO permette di definire variabili e vincoli fra variabili e effettuare il posting di questi ultimi
• HL contiene un parser in JAVACC che accetta la descrizione di un problema come stringa e invoca i corrispondenti metodi restituendo un oggetto di tipo OptimizationProblem pronto per l’uso
13
Grammatica per i problemiPROBLEM → VAR_DEFINITION<sep>
OBJECTIVEFUNCTION<sep>CONSTRAINTS
VAR_DEFINITION → DEF(<sep>DEF)*DEF → <var_name>:<int>,<int>OBJECTIVEFUNCTION → (min|max) EXPRESSIONCONSTRAINTS → CONSTRAINT(<sep>CONSTRAINT)*CONSTRAINT → GLOBAL|COMPLEXGLOBAL → GLOBAL_OP(<var_name>(,<var_name>)+)GLOBAL_OP → alldiff|…COMPLEX → AND(COMPLEX_OP AND)?COMPLEX_OP → =>|<=>AND → OR(/\OR)*OR → BINARY(\/BINARY)*BINARY → EXPRESSION BINARY_OP EXPRESSIONBINARY_OP → =|!=|<|>|<=|>=EXPRESSION → TERM((+|-)TERM)*TERM → <int>|<var_name>|<int><var_name>
Esempio:
A:0,50B:0,50C:0,50min A-B-Calldiff(A,B,C)A-B-C>=0
Euristiche
•Sceglie il successivoassegnamento (Xi,vj)•Estrae dalla tabella τ(Xi,vj)•Poneτ(Xi,vj)← (1-ρ)τ(Xi,vj)
14
SolverFactory (codice mooolto beta)public class SolverFactory {
public static Solve getAntSolver(OptimizationProblem p,PheromoneTable t, double alfa, double ro) {
Solve s=new Solve(p);ProbabilisticVariableSelector sel=new
ProbWithLocalEvaporationSelector(p,t,alfa,ro);AssignVar v=new AssignVar(new LexycographicOrder(p),sel);v.setSolver(s);s.mainGoal=v;s.stopAtFirstSol=true;return s;
}}
PheromoneTable
• Implementa la struttura dati che mantiene memorizzata la porzione di albero delle soluzioni visitata dalle formiche con relativi valori di feromone
• Interrogata con la coppia (variabile,valore) restituisce la quantitàdi feromone associata, o la quantità di inizializzazione se la coppia non è presente
pheromoneTable
X1
X2
…Xn
val1val2…
valn
val1,τ
15
Formicai 1/2
Formicai 2/2
• AbstractAntHill ha la responsabilità di gestire i cicli di tour delle formiche
• Realizza inoltre il meccanismo di evaporazione del feromone:
for each entry (Xi,vj) in pheromoneTable: τ(Xi,vj)←(1-ρ)τ(Xi,vj)
• Lascia astratta la politica di aggiornamento del feromone, rendendo disponibili le informazioni sulle soluzioni trovate nel ciclo corrente
• Memorizza lo stato dell’albero delle soluzioni ad ogni ciclo, permettendo di visualizzare l’evoluzione dell’euristica
• Può essere esteso per realizzare differenti strategie di aggiornamento del feromone
16
Problemi di scala 1/3
• Consideriamo un problema di minimizzazione
• Possibile politica di aggiornamento del feromone
τXi ,v j(i +1) = (1− ρ)τXi ,v j
(i) + 1ss∈curSol,(Xi ,v j )∈s
∑
s
τ Intervallo delle soluzioni
Problemi di scala 2/3
• Valori ben distribuiti• Valori troppo alti
– L’evaporazione non riesce a far fronte alle fluttuazioni iniziali
17
s
τ Intervallo delle soluzioni
Problemi di scala 3/3
• Valori troppo omogenei e molto piccoli– Difficoltà di
convergenza
Stesso problema di
prima, sommando
alla funzione obiettivo una
costante molto grande
Hypercube AntHill• È un formicaio che implementa la politica di
aggiornamento descritta nell’Hypercube Framework
• Grazie a tale regola, i valori di feromone sono sempre normalizzati nell’intervallo [0,1]
• In questo modo, la bontà delle soluzioni trovate viene valutata indipendentemente da fattori di scala, che degradano il comportamento di ACO
• Blum, A. Roli, and M. Dorigo, HC-ACO: the hyper-cube framework for ant colony optimization, in Proc. MIC’200-Metaheuristics Int. Conf., vol. 2, 2001, pp. 399-403.
18
Hypercube rule
• Regola di aggiornamento:
• F(s) è una funzione tale che F(s1)>F(s2) se s1 è migliore di s2 (quality function)
• Attenzione a F(s)!!!
τXi ,v j(i +1) = (1− ρ)τXi ,v j
(i) + ρ F (s)F (s')
s'∈CurSol∑s∈CurSol,(Xi ,v j )∈s
∑
Valutazione e spunti
• Sistema ancora da analizzare approfonditamente– Testing su problemi in cui sia l’ammissibilità
che l’ottimalità presentano difficoltà– Analisi in funzione di modifiche dei parametri
• Realizzazione di nuove strategie di aggiornamento e studio dell’hypercube anthill– Sensibilità rispetto a F(s)!!!
• L’euristica appresa può dirci qualcosa sulle proprietà del problema modellato???
19