Problemi di soddisfacimento di vincoli Maria Simi a.a. 2010/2011.

Slides:



Advertisements
Presentazioni simili
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2005/2006.
Advertisements

Intelligenza Artificiale marco ernandes Gennaio – Aprile 2007.
1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.
Problemi con soddisfacimento dei vincoli
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2008/2009.
1 Capitolo 3: Vincoli a dominio finito. 2 Vincoli a dominio finito u Problemi di soddisfazione di vincoli u Un risolutore con backtracking u Consistenza.
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2011/2012.
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2013/2014.
2a + 10b abx2 3a + 1 y 2 a + 1 x + 2y a − Espressioni algebriche
Prof.ssa Rossella Petreschi Lezione del 5/12/2012 del Corso di Algoritmi e Strutture Dati Riferimenti: Capitolo 11 del testo Anany Levitin “The design.
Huffman Canonico: approfondimento. Come abbiamo visto, Huffman canonico ci permette di ottenere una decompressione più veloce e con un uso più efficiente.
INFORMATICA ALGORITMI, PROGRAMMI, E LINGUAGGI DI PROGRAMMAZIONE.
Prof.ssa Rossella Petreschi Lezione del 3/12/2013 del Corso di Algoritmica GRAFI e PLANARITA’ Lezione n°15.
IL SOFTWARE (FPwin 6.0).
© 2007 SEI-Società Editrice Internazionale, Apogeo
Definizione di logaritmo
Branch and Bound Lezione n°19 Prof.ssa Rossella Petreschi
MASSIMO COMUNE DENOMINATORE (M.C.D)
Branch and Bound Lezione n°14 Prof.ssa Rossella Petreschi
(7x + 8x2 + 2) : (2x + 3) 8x2 + 7x + 2 2x + 3 8x2 + 7x + 2 2x + 3 4x
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi
I teoremi delle funzioni derivabili
Agenti risolutori di problemi
IL CONCETTO DI ALGORITMO
Lezione n°17 Prof.ssa Rossella Petreschi
Cluster Analysis Definizione di Classificazione: operazione concettuale condotta adottando un solo criterio (detto fondamento della divisione) per individuare.
La normalizzazione delle relazioni
B-alberi e alberi autoaggiustanti
Cammini minimi tra tutte le coppie
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
Programmazione strutturata
Usi (meno scontati) della visita DFS
Algoritmi e Strutture Dati
I MONOMI.
Esempio: Map-Coloring
K4 è planare? E K3,3 e K5 sono planari? Sì!
Programmazione e Laboratorio di Programmazione
IL CONCETTO DI ALGORITMO
Lezione n°11 Prof.ssa Rossella Petreschi
Programmazione e Laboratorio di Programmazione
Lezione n°12 Prof.ssa Rossella Petreschi
Programmare.
iterazione o ricorsione nel pensare per OGGETTI
© 2007 SEI-Società Editrice Internazionale, Apogeo
Lezione n°16 Prof.ssa Rossella Petreschi
ABBINAMENTO Lezione n°13
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Algoritmi e Strutture Dati
Partizionamento/accorpamento di concetti
Algoritmi per il flusso nelle reti
Algoritmi per il flusso nelle reti
Branch and Bound Lezione n°18 Prof.ssa Rossella Petreschi
Ricorsione 16/01/2019 package.
Partial Order Planning (POP)
Schema generale, visita in ampiezza e profondità.
Algoritmi e Strutture Dati
Backtracking Lezione n°13 Prof.ssa Rossella Petreschi
Usi (meno scontati) della visita DFS
Algebra di Boole e Funzioni Binarie
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Backtracking Lezione n°17 Prof.ssa Rossella Petreschi
Capitolo 1 Introduzione alla fisica
Processi decisionali e funzioni di controllo
Esercizio Dato un albero binario, definiamo altezza minimale di un nodo v la minima distanza di v da una delle foglie del suo sottoalbero, definiamo invece.
Partial Order Planning (POP)
Grafi e problem solving
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Il problema del flusso nelle reti
Unità D1 L’informatica e il problem solving
Transcript della presentazione:

Problemi di soddisfacimento di vincoli Maria Simi a.a. 2010/2011

Problemi CSP: soddisfacimento di vincoli  Sono problemi con una struttura particolare, per cui conviene pensare ad algoritmi specializzati.  La classe di problemi formulabili in questo modo è piuttosto ampia: layout di circuiti, scheduling, …  Esistono euristiche generali che si applicano e che consentono la risoluzione di problemi significativi per questa classe

Formulazione di problemi CSP  Problema:  insieme di variabili (X 1 X 2 … X n ) con associato dominio (D 1 D 2 … D n )  insieme di vincoli (relazioni tra le variabili): C 1 C 2 … C m  Stato: un assegnamento parziale di valori a variabili {X i = v i, X j = v j …}  Stato iniziale: { }  Azioni: assegnamento di un valore a una variabile  Soluzione (goal test): un assegnamento completo (le variabili hanno tutte un valore) e consistente (i vincoli sono soddisfatti)

Colorazione di una mappa Variabili: WA, NT, SA, Q, NSW, V, T Domini: {red, green, blue} Vincoli: WA  NT, WA  SA, NT  Q, SA  Q, SA  NSW SA  V NSW  V Grafo dei vincoli

Formulazione  Variabili, i paesi nella mappa:  WA, NT, SA, Q, V, NSW, T  Domini: i colori possibili  r, g, b  Vincoli:  WA ≠ NT, WA ≠ SA, NT ≠ SA, NT ≠ Q, SA ≠ Q, SA ≠ NSW, SA ≠ V, NSW ≠ Q, NSW ≠ V

Tipi di problemi CSP  Variabili discrete con domini finiti o infiniti  CSP booleani (valori vero e falso)  Variabili con domini continui:  programmazione lineare  I vincoli possono essere:  unari (es. “x pari”)  binari (es. “x  y”)  di grado superiore (es. x+y = z)  Vincoli assoluti o di preferenza

Ricerca in problemi CSP  Ad ogni passo si assegna una variabile  La massima profondità della ricerca è fissata dal numero di variabili n  L’ampiezza dello spazio di ricerca è |D 1 |  |D 2 |  …  |D n | dove |D i | è la cardinalità del dominio di X i  Il fattore di diramazione pari alla dimensione media dei domini d (e non nd + (n-1)d +...)  Riduzione drastica dello spazio di ricerca dovuta al fatto che il goal-test è decomponibile e commutativo

Strategie di ricerca  Ricerca con backtracking (BT): ad ogni passo si assegna una variabile e si torna indietro in caso di fallimento (vs. Generate and Test).  Controllo anticipato della violazione dei vincoli: è inutile andare avanti fino alla fine e poi controllare; si può fare backtracking non appena si scopre un vincolo violato.  La ricerca è naturalmente limitata in profondità dal numero di variabili

Esempio di backtracking

Backtracking ricorsivo function Ricerca-Backtracking (csp) returns una soluzione o fail return Backtracking-Ricorsivo({ }, csp) function Backtracking-Ricorsivo(ass, csp) returns una soluzione o fail if ass è completo then return ass var  Scegli-var-non-assegnata(Variabili[csp], ass, csp) for each val in Ordina-Valori-Dominio(var, ass, csp) do if val consistente con ass in base a Vincoli[csp] then aggiungi [var=val] a ass risultato  Backtracking-Ricorsivo(ass, csp) If risultato = fail then return risultato rimuovi [var=val] da ass return fail

Euristiche e strategie per CSP  Quale variabile scegliere?  Quali valori scegliere?  Qual è l’influenza di una scelta sulle altre variabili? (Propagazione di vincoli)  Come evitare di ripetere i fallimenti? (Backtracking intelligente)

Scelta delle variabili 1. MRV (Minimum Remaining Values): scegliere la variabile che ha meno valori possibili, la variabile più vincolata. Si scoprono prima i fallimenti 2. In base al grado: scegliere la variabile coinvolta in più vincoli con le altre variabili (la variabile più vincolante o di grado maggiore) Da usare a parità di MRV

Scelta dei valori  Una volta scelta la variabile come scegliere il valore da assegnare? 1. Valore meno vincolante: quello che esclude meno valori per le altre variabili direttamente collegate con la variabile scelta

Propagazione di vincoli 1. Verifica in avanti (Forward Checking o FC): assegnato un valore ad una variabile si possono eliminare i valori incompatibili per le altre var. collegate da vincoli (un passo solo) 2. Propagazione di vincoli: si itera il FC; se una variabile ha il suo dominio ristretto per effetto del forward checking si vanno a controllare le variabili collegate …

Esempio di FC {r g b}{r g b} {r g b}{r g b} {r g b}{r g b} {r g b}{r g b} {r g b}{r g b} {r g b}{r g b} {r g b}{r g b} WA=r Q=g V=b {g b}{g b} {g b}{g b} {r g b}{r g b} {r g b}{r g b} {r g b}{r g b} {r g b}{r g b} WA {b}{b} {b}{b} {r b} {r g b}{r g b} {r g b}{r g b} WA Q {b}{b} { } { r } {r g b}{r g b} WA Q V

Stesso esempio in forma tabellare

Consistenza degli archi  Un metodo efficace per propagare i vincoli.  Nel grafo di vincoli, un arco orientato da A a B è consistente se per ogni valore x di A c’è almeno un valore y di B consistente con x.  Quello che si fa è controllare la consistenza degli archi all’inizio e dopo ogni assegnamento (MAC – Maintaining Arc Consistency)

{r g b}{r g b} {r g b}{r g b} {r g b}{r g b} {r g b}{r g b} {r g b}{r g b} {r g b}{r g b} {r g b}{r g b} {g b}{g b} {g b}{g b} {r g b}{r g b} {r g b}{r g b} {r g b}{r g b} {r g b}{r g b} WA Esempio di MAC { } {r b} {r g b}{r g b} {r g b}{r g b} WA Q WA=r Q=g Si scopre subito che non va bene

Complessità di MAC (o AC-3)  Devono essere controllati tutti gli archi (max k 2 )  Se durante il controllo di un arco X  Y il dominio di Y si restringe vanno ricontrollati tutti gli archi collegati Z  Y  Il controllo di consistenza di un arco ha complessità d 2  Un arco deve essere controllato al max d volte  Complessità: O(k 2 d 3 )... polinomiale

MAC incompleto Più efficace di forward-checking, ma non rileva tutte le inconsistenze Esempio: WA=red NSW=red... non viene rilevata inconsistenza {g b} {g b}{g b} {g b}{g b} {r g b}{r g b} WA NSW

{r, b, g} Q NSW V T Backtracking cronologico  Supponiamo di avere {Q=red, NSW=green, V=blue, T=red}  Cerchiamo di assegnare SA  Il fallimento genera un backtracking “cronologico”  … e si provano tutti i valori alternativi per l’ultima variabile, T, continuando a fallire

Backtracking intelligente  Si considerano alternative solo per le variabili che hanno causato il fallimento {Q, NSW, V}, l’insieme dei conflitti  Backtracking guidato dalle dipendenze {r, b, g} {r}{r} {g}{g} {b}{b} {r }{r } Q NSW V T

CSP con miglioramento iterativo  Si parte con tutte le variabili assegnate (tutte le regine sulla scacchiera) e ad ogni passo si modifica l’assegnamento ad una variabile per cui un vincolo è violato (si muove una regina minacciata su una colonna).  È un algoritmo di riparazione euristica.  Un’euristica nello scegliere un nuovo valore potrebbe essere quella dei conflitti minimi: si sceglie il valore che crea meno conflitti.

Le 8 regine come CSP Formulazione come CSP:  V i : posizione della regina nella colonna i-esima  D i : {1 … 8}  Vincoli di “non-attacco” tra V 1 e V 2 : { … … …}

Esempio  Molto efficace: 1 milione di regine in 50 passi!  Utilizzabile in problemi reali di progettazione e scheduling.

Sottoproblemi indipendenti  n # variabili  c# variabili per sottoproblema  d dimensione domini  n/c problemi indipendenti  O(d c n/c) lineare in n piuttosto che O(d n ) esponenziale!

Struttura dei problemi: albero  Consistenza d’arco orientato (DAC) 1. Ordinamento variabili: X 1, X 2, … X n 2. Da X n a X 2 verificare la consistenza degli archi X i  X j riducendo il dominio di X i se necessario 3. Da X 1 a X n assegnare i valori  Complessit à : O(nd 2 ), lineare in n

 Es. Assegnare SA, e ridurre i domini delle variabili collegate. Provare con diversi valori di SA.  In generale eliminare un insieme [min] S di variabili, fino a ottenere un albero (insieme di taglio dei cicli) e provare con tutti gli assegnamenti possibili di S.  Condizionamento con insieme di taglio Riduzione ad albero

Scomposizione ad albero  Requisiti della scomposizione  ogni variabile compare in almeno un sottoproblema  se due variabili sono collegate da un vincolo vanno insieme, con il vincolo.  se una variabile compare in due sottoproblemi deve anche comparire nei sottoproblemi sul cammino che le congiunge

Soluzione  Ogni sotto-problema viene risolto in maniera indipendente Sotto-problemi più piccoli possibile  Possiamo vedere il problema originario come un Mega- problema con la seguente formulazione:  Mega-variabili in corrispondenza a sotto-problemi,con dominio le soluzioni ai sottoproblemi Es. Dom(X1) ={[WA=r, SA=b, NT=g]...} 6 soluzioni  Vincoli: i valori assegnati alle variabili nei diversi sotto- problemi devono essere gli stessi