19
1 Marco Montali [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

Outline - unibo.itlia.disi.unibo.it/Courses/AI/applicationsAI2005-06/Tesine/BetaHeuristicLearner.pdfwhile termination condition not met do for all ants in Colony do s a←constructSolution()

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Outline - unibo.itlia.disi.unibo.it/Courses/AI/applicationsAI2005-06/Tesine/BetaHeuristicLearner.pdfwhile termination condition not met do for all ants in Colony do s a←constructSolution()

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

Page 2: Outline - unibo.itlia.disi.unibo.it/Courses/AI/applicationsAI2005-06/Tesine/BetaHeuristicLearner.pdfwhile termination condition not met do for all ants in Colony do s a←constructSolution()

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

Page 3: Outline - unibo.itlia.disi.unibo.it/Courses/AI/applicationsAI2005-06/Tesine/BetaHeuristicLearner.pdfwhile termination condition not met do for all ants in Colony do s a←constructSolution()

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

Page 4: Outline - unibo.itlia.disi.unibo.it/Courses/AI/applicationsAI2005-06/Tesine/BetaHeuristicLearner.pdfwhile termination condition not met do for all ants in Colony do s a←constructSolution()

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)

Page 5: Outline - unibo.itlia.disi.unibo.it/Courses/AI/applicationsAI2005-06/Tesine/BetaHeuristicLearner.pdfwhile termination condition not met do for all ants in Colony do s a←constructSolution()

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

Page 6: Outline - unibo.itlia.disi.unibo.it/Courses/AI/applicationsAI2005-06/Tesine/BetaHeuristicLearner.pdfwhile termination condition not met do for all ants in Colony do s a←constructSolution()

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)(

α

α

τ

τ

Page 7: Outline - unibo.itlia.disi.unibo.it/Courses/AI/applicationsAI2005-06/Tesine/BetaHeuristicLearner.pdfwhile termination condition not met do for all ants in Colony do s a←constructSolution()

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

Page 8: Outline - unibo.itlia.disi.unibo.it/Courses/AI/applicationsAI2005-06/Tesine/BetaHeuristicLearner.pdfwhile termination condition not met do for all ants in Colony do s a←constructSolution()

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

Page 9: Outline - unibo.itlia.disi.unibo.it/Courses/AI/applicationsAI2005-06/Tesine/BetaHeuristicLearner.pdfwhile termination condition not met do for all ants in Colony do s a←constructSolution()

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

Page 10: Outline - unibo.itlia.disi.unibo.it/Courses/AI/applicationsAI2005-06/Tesine/BetaHeuristicLearner.pdfwhile termination condition not met do for all ants in Colony do s a←constructSolution()

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

Page 11: Outline - unibo.itlia.disi.unibo.it/Courses/AI/applicationsAI2005-06/Tesine/BetaHeuristicLearner.pdfwhile termination condition not met do for all ants in Colony do s a←constructSolution()

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)

Page 12: Outline - unibo.itlia.disi.unibo.it/Courses/AI/applicationsAI2005-06/Tesine/BetaHeuristicLearner.pdfwhile termination condition not met do for all ants in Colony do s a←constructSolution()

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

Page 13: Outline - unibo.itlia.disi.unibo.it/Courses/AI/applicationsAI2005-06/Tesine/BetaHeuristicLearner.pdfwhile termination condition not met do for all ants in Colony do s a←constructSolution()

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)

Page 14: Outline - unibo.itlia.disi.unibo.it/Courses/AI/applicationsAI2005-06/Tesine/BetaHeuristicLearner.pdfwhile termination condition not met do for all ants in Colony do s a←constructSolution()

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,τ

Page 15: Outline - unibo.itlia.disi.unibo.it/Courses/AI/applicationsAI2005-06/Tesine/BetaHeuristicLearner.pdfwhile termination condition not met do for all ants in Colony do s a←constructSolution()

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

Page 16: Outline - unibo.itlia.disi.unibo.it/Courses/AI/applicationsAI2005-06/Tesine/BetaHeuristicLearner.pdfwhile termination condition not met do for all ants in Colony do s a←constructSolution()

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

Page 17: Outline - unibo.itlia.disi.unibo.it/Courses/AI/applicationsAI2005-06/Tesine/BetaHeuristicLearner.pdfwhile termination condition not met do for all ants in Colony do s a←constructSolution()

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.

Page 18: Outline - unibo.itlia.disi.unibo.it/Courses/AI/applicationsAI2005-06/Tesine/BetaHeuristicLearner.pdfwhile termination condition not met do for all ants in Colony do s a←constructSolution()

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

Page 19: Outline - unibo.itlia.disi.unibo.it/Courses/AI/applicationsAI2005-06/Tesine/BetaHeuristicLearner.pdfwhile termination condition not met do for all ants in Colony do s a←constructSolution()

19