slides intelligenza artificiale, vincenzo cutello 1 problemi con soddisfacimento dei vincoli

25
Slides Intelligenza Artif Slides Intelligenza Artif iciale, Vincenzo Cutello iciale, Vincenzo Cutello 1 Problemi con Problemi con soddisfacimento dei soddisfacimento dei vincoli vincoli

Upload: croccifixio-pandolfi

Post on 02-May-2015

217 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Slides Intelligenza Artificiale, Vincenzo Cutello 1 Problemi con soddisfacimento dei vincoli

Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello

11

Problemi con soddisfacimento Problemi con soddisfacimento dei vincolidei vincoli

Page 2: Slides Intelligenza Artificiale, Vincenzo Cutello 1 Problemi con soddisfacimento dei vincoli

Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello

22

OutlineOutline

Esempi di CSPEsempi di CSP Ricerca generale applicata ai CSPRicerca generale applicata ai CSP BacktrackingBacktracking Controllo in avantiControllo in avanti Euristiche per i CSPEuristiche per i CSP

Page 3: Slides Intelligenza Artificiale, Vincenzo Cutello 1 Problemi con soddisfacimento dei vincoli

Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello

33

Problemi con soddisfacimento dei Problemi con soddisfacimento dei vincolivincoli

Problema di ricerca standard:Problema di ricerca standard:lo lo statostato è una “black box” è una “black box”una qualsiasi vecchia struttura dati che supporta una qualsiasi vecchia struttura dati che supporta verifica dell’obiettivo, valutazione, successoreverifica dell’obiettivo, valutazione, successore

CSP:CSP:

lolo stato stato è definito da è definito da variabili Vvariabili Vii con valori dal con valori dal dominio dominio DDii

la la verifica dell’obiettivoverifica dell’obiettivo è un insieme di è un insieme di vincolivincoli specificanti le combinazioni permesse di valori per specificanti le combinazioni permesse di valori per sottoinsiemi di variabili sottoinsiemi di variabili

Page 4: Slides Intelligenza Artificiale, Vincenzo Cutello 1 Problemi con soddisfacimento dei vincoli

Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello

44

Esempio: 4-regine come CSPEsempio: 4-regine come CSPAssumiamo una regina in ogni colonna. In quale riga andrà Assumiamo una regina in ogni colonna. In quale riga andrà

ognuna ?ognuna ?VariabiliVariabili QQ11,Q,Q22,Q,Q33,Q,Q44

DominiDomini DDii = = {1,2,3,4}{1,2,3,4}VincoliVincoli

QQii ≠ ≠ QQkk (non possono essere (non possono essere nella stessa riga)nella stessa riga)

| Q| Qii - - QQkk| | ≠ |i-k|≠ |i-k| (o stessa diagonale) (o stessa diagonale)

Traduciamo ogni vincolo in un insieme di valori permessi per Traduciamo ogni vincolo in un insieme di valori permessi per le sue variabili le sue variabili Cioè, i valori per Cioè, i valori per (Q(Q11,Q,Q22)) sono sono (1,3) (1,4) (2,4) (3,1) (4,1) (4,2)(1,3) (1,4) (2,4) (3,1) (4,1) (4,2)

Q1 = 1 Q2 = 3

Page 5: Slides Intelligenza Artificiale, Vincenzo Cutello 1 Problemi con soddisfacimento dei vincoli

Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello

55

Grafo dei vincoliGrafo dei vincoliCSP binarioCSP binario; ogni vincolo coinvolge al più due ; ogni vincolo coinvolge al più due

variabilivariabili

Grafo dei vincoliGrafo dei vincoli; i nodi sono variabili, gli archi ; i nodi sono variabili, gli archi

rappresentano i vincolirappresentano i vincoli

Q1 Q2

Q3 Q4

Page 6: Slides Intelligenza Artificiale, Vincenzo Cutello 1 Problemi con soddisfacimento dei vincoli

Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello

66

Esempio: CrittoaritmeticaEsempio: Crittoaritmetica

VariabiliVariabiliD E M N O R S Y S E N DD E M N O R S Y S E N D

DominiDomini + M O R E+ M O R E{0,1,2,3,4,5,6,7,8,9} M O N E Y {0,1,2,3,4,5,6,7,8,9} M O N E Y

VincoliVincoliM ≠ 0, S ≠ 0 (vincoli unari)M ≠ 0, S ≠ 0 (vincoli unari)Y = D+E o Y = D+E-10, etc.Y = D+E o Y = D+E-10, etc.

D ≠ E, D ≠ M, D ≠ N, etc.D ≠ E, D ≠ M, D ≠ N, etc.

Page 7: Slides Intelligenza Artificiale, Vincenzo Cutello 1 Problemi con soddisfacimento dei vincoli

Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello

77

Esempio: Colorazione di mappeEsempio: Colorazione di mappeColorare una mappa in maniera Colorare una mappa in maniera tale che non esistano due paesi tale che non esistano due paesi adiacenti con lo stesso coloreadiacenti con lo stesso coloreVariabili Variabili

Paesi CPaesi Cii

DominiDomini{Rosso, Blu, Verde}{Rosso, Blu, Verde}

VincoliVincoli

CC11 ≠ C≠ C22, C, C1 1 ≠ C≠ C55, etc., etc.

Grafo dei vincoli:Grafo dei vincoli:

C1 C2

C3 C6

C4

C5

C6 C4

C2

C1

C5

C3

Page 8: Slides Intelligenza Artificiale, Vincenzo Cutello 1 Problemi con soddisfacimento dei vincoli

Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello

88

CSP nel mondo realeCSP nel mondo reale Problemi di assegnamentoProblemi di assegnamento

– per esempio, chi insegna questo corsoper esempio, chi insegna questo corso

Problemi di orariProblemi di orari– per esempio, quale corso è offerto, quando e per esempio, quale corso è offerto, quando e

dove ?dove ?

Problemi di SchedulingProblemi di Scheduling

Si noti che molti problemi del mondo realeSi noti che molti problemi del mondo reale

coinvolgono variabili con valori reali coinvolgono variabili con valori reali

Page 9: Slides Intelligenza Artificiale, Vincenzo Cutello 1 Problemi con soddisfacimento dei vincoli

Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello

99

Applicando la ricerca standardApplicando la ricerca standardIniziamo con l’approccio direttoIniziamo con l’approccio diretto

Gli stati sono definiti tramite i valori fin qui Gli stati sono definiti tramite i valori fin qui assegnatiassegnatiStato iniziale: Tutte le variabili senza alcun valoreStato iniziale: Tutte le variabili senza alcun valoreOperatori: assegna un valore a una variabile senza Operatori: assegna un valore a una variabile senza

valorevaloreVerifica dell’obiettivo: tutte le variabili assegnate, Verifica dell’obiettivo: tutte le variabili assegnate,

nessun vincolo violatonessun vincolo violato

Si noti che questo è uguale per tutti i CSPSi noti che questo è uguale per tutti i CSP

Page 10: Slides Intelligenza Artificiale, Vincenzo Cutello 1 Problemi con soddisfacimento dei vincoli

Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello

1010

ImplementazioneImplementazioneLo stato del CSP mantiene traccia di quali variabili hanno finora un valoreLo stato del CSP mantiene traccia di quali variabili hanno finora un valoreOgni variabile ha un dominio e un valore correnteOgni variabile ha un dominio e un valore corrente

datatype CSP-Statedatatype CSP-State

components: UNASSIGNED, una lista di variabili ancore senza valorecomponents: UNASSIGNED, una lista di variabili ancore senza valore

ASSIGNED, una lista di variabili che hanno un valoreASSIGNED, una lista di variabili che hanno un valore

datatype CSP-Var datatype CSP-Var

components: NAME, per scopi di input/outputcomponents: NAME, per scopi di input/output

DOMINIO, una lista di possibili valoriDOMINIO, una lista di possibili valori

VALORI, valore corrente (se esiste !)VALORI, valore corrente (se esiste !)

I vincoli possono essere rappresentati esplicitamente come insiemi di valori permessiimplicitamente per mezzo di una funzione che verifica il

soddisfacimento del vincolo

Page 11: Slides Intelligenza Artificiale, Vincenzo Cutello 1 Problemi con soddisfacimento dei vincoli

Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello

1111

Ricerca Standard: colorazione di mappeRicerca Standard: colorazione di mappe

NON ASSEGNATO C1 C2 C3

ASSEGNATO

NON ASSEGNATO C2 C3

ASSEGNATOC1 = ROSSO

NON ASSEGNATO C1 C3

ASSEGNATOC2 = BLU

NON ASSEGNATO C1 C2

ASSEGNATOC3 = VERDE

Page 12: Slides Intelligenza Artificiale, Vincenzo Cutello 1 Problemi con soddisfacimento dei vincoli

Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello

1212

Complessità dell’approccio “Dumb”Complessità dell’approccio “Dumb”

Max profondità dello spazio m = ?? n (numero di variabili)Max profondità dello spazio m = ?? n (numero di variabili)

Profondità dello stato soluzione d = ?? n (tutte le variabili Profondità dello stato soluzione d = ?? n (tutte le variabili assegnate)assegnate)

Algoritmo di ricerca da usare ?? Depth-firstAlgoritmo di ricerca da usare ?? Depth-first

Fattore di ramificazione b = ?? Fattore di ramificazione b = ?? i i |D|Dii| (in cima all’albero)| (in cima all’albero)

Questo può essere migliorato sostanzialmente notando:Questo può essere migliorato sostanzialmente notando: L’ordine di assegnamento è irrilevante così molti percorsi L’ordine di assegnamento è irrilevante così molti percorsi

sono equivalentisono equivalenti L’aggiunta di un assegnamento non può correggere un L’aggiunta di un assegnamento non può correggere un

vincolo già violatovincolo già violato

Page 13: Slides Intelligenza Artificiale, Vincenzo Cutello 1 Problemi con soddisfacimento dei vincoli

Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello

1313

Ricerca con backtrackingRicerca con backtrackingUsiamo la ricerca depth-first, maUsiamo la ricerca depth-first, ma1) Fissiamo l’ordine di assegnamento, 1) Fissiamo l’ordine di assegnamento, b = |D b = |Dii| (può essere | (può essere

fatto nella funzione SUCCESSORI)fatto nella funzione SUCCESSORI)2) Controllo per le violazioni dei vincoli2) Controllo per le violazioni dei vincoliIl controllo del vincolo violato può essere implementato in due Il controllo del vincolo violato può essere implementato in due maniere:maniere:

1) modificando SUCCESSORI per assegnare solo valori 1) modificando SUCCESSORI per assegnare solo valori che sono permessi, dati i valori già assegnatiche sono permessi, dati i valori già assegnati

2) controllare che i vincoli siano soddisfatti prima di 2) controllare che i vincoli siano soddisfatti prima di espandere uno statoespandere uno statoLa ricerca con backtracking è l’algoritmo di base non La ricerca con backtracking è l’algoritmo di base non informato per i CSPinformato per i CSPPuò risolvere il problema delle n-regine con n Può risolvere il problema delle n-regine con n ≈ 15≈ 15

Page 14: Slides Intelligenza Artificiale, Vincenzo Cutello 1 Problemi con soddisfacimento dei vincoli

Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello

1414

Controllo in avantiControllo in avantiIdea: mantenere traccia dei rimanenti valori legali per le variabili ancora Idea: mantenere traccia dei rimanenti valori legali per le variabili ancora senza valore senza valore Terminare la ricerca quando qualche variabile non ha più valori legaliTerminare la ricerca quando qualche variabile non ha più valori legaliEsempio di colorazione di mappe semplificato:Esempio di colorazione di mappe semplificato:

Può risolvere il problema delle n-regine fino a n ≈ 30

ROSSOROSSO BLUBLU VERDEVERDE

CC11

CC22

CC33

CC44

CC55

C1

C2

C3

C4

C5

Page 15: Slides Intelligenza Artificiale, Vincenzo Cutello 1 Problemi con soddisfacimento dei vincoli

Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello

1515

ROSSOROSSO BLUBLU VERDEVERDE

CC11 √√

CC22 ХХ

CC33

CC44 ХХ

CC55 ХХ

Page 16: Slides Intelligenza Artificiale, Vincenzo Cutello 1 Problemi con soddisfacimento dei vincoli

Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello

1616

ROSSOROSSO BLUBLU VERDEVERDE

CC11

CC22 √√

CC33 ХХ

CC44 ХХ

CC55 ХХ

Page 17: Slides Intelligenza Artificiale, Vincenzo Cutello 1 Problemi con soddisfacimento dei vincoli

Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello

1717

ROSSOROSSO BLUBLU VERDEVERDE

CC11

CC22

CC33 √√

CC44 ХХ

CC55 ХХ

Page 18: Slides Intelligenza Artificiale, Vincenzo Cutello 1 Problemi con soddisfacimento dei vincoli

Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello

1818

Euristiche per i CSPEuristiche per i CSPPiù decisioni intelligenti suPiù decisioni intelligenti su

quali valori scegliere per ogni variabilequali valori scegliere per ogni variabilequali variabili scegliere per l’assegnamento quali variabili scegliere per l’assegnamento

Dati Dati CC1 1 = = RossoRosso, , CC2 2 = = VerdeVerde ?? ?? CC3 3 = = VerdeVerde: : valore meno vincolantevalore meno vincolante

Dati Dati CC1 1 = = RossoRosso, , CC2 2 = = VerdeVerde ?? ?? CC5 5 : : variabile più vincolatavariabile più vincolata

Può risolvere il problema dellen-regine fino a n ≈ 1000

C6 C4

C2

C1

C5

C3

Page 19: Slides Intelligenza Artificiale, Vincenzo Cutello 1 Problemi con soddisfacimento dei vincoli

Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello

1919

Algoritmi iterativi per i CSPAlgoritmi iterativi per i CSP

Hill-climbing, simulated annealing lavorano tipicamente con Hill-climbing, simulated annealing lavorano tipicamente con stati “completi”, cioè, con tutte le variabili assegnatestati “completi”, cioè, con tutte le variabili assegnatePer applicarli ai CSP:Per applicarli ai CSP:

permettere stati con vincoli non soddisfattipermettere stati con vincoli non soddisfattioperatori che riassegnano i valori alle variabilioperatori che riassegnano i valori alle variabili

Selezione della variabile: selezionare in maniera random una Selezione della variabile: selezionare in maniera random una qualsiasi variabile con conflittiqualsiasi variabile con conflittiEuristica Euristica min-conflictsmin-conflicts: :

scegliere il valore che vìola il minor numero di conflitti, cioè, scegliere il valore che vìola il minor numero di conflitti, cioè, hillclimb con h(n) = numero totale di vincoli violatihillclimb con h(n) = numero totale di vincoli violati

Page 20: Slides Intelligenza Artificiale, Vincenzo Cutello 1 Problemi con soddisfacimento dei vincoli

Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello

2020

Esempio: 4-regineEsempio: 4-regineStati: 4 regine in 4 colonne (4Stati: 4 regine in 4 colonne (444 = 256 stati) = 256 stati)Operatori: muovi la regina lungo la colonnaOperatori: muovi la regina lungo la colonnaVerifica dell’obiettivo: nessuno attaccoVerifica dell’obiettivo: nessuno attaccoValutazione: h(n) = numero di attacchiValutazione: h(n) = numero di attacchi

h = 5 h = 0h = 2

Page 21: Slides Intelligenza Artificiale, Vincenzo Cutello 1 Problemi con soddisfacimento dei vincoli

Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello

2121

Prestazioni del min-conflictsPrestazioni del min-conflictsDato uno stato iniziale random, può risolvere il problema delle Dato uno stato iniziale random, può risolvere il problema delle

nn-regine in al più un tempo costante per -regine in al più un tempo costante per nn arbitrario con arbitrario con alta probabilità (cioè, alta probabilità (cioè, nn = 10.000.000) = 10.000.000)

Lo stesso sembra essere vero per un qualsiasi CSP generato Lo stesso sembra essere vero per un qualsiasi CSP generato in maniera randomin maniera random

Eccetto in un piccolo range del rapportoEccetto in un piccolo range del rapporto numero di vincolinumero di vincoliR = R = ──────────────────────── numero di variabilinumero di variabili

Rapporto critico

Tempo di CPU

Page 22: Slides Intelligenza Artificiale, Vincenzo Cutello 1 Problemi con soddisfacimento dei vincoli

Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello

2222

CSP strutturati ad alberoCSP strutturati ad albero

Teorema: se il grafo dei vincoli non ha cicli, il CSP può essere risolto in Teorema: se il grafo dei vincoli non ha cicli, il CSP può essere risolto in tempo tempo O(n|D|O(n|D|22)) Comparato al CSP generale, dove il tempo nel caso peggiore è Comparato al CSP generale, dove il tempo nel caso peggiore è O(|D|O(|D|nn))Questa proprietà si applica anche ai ragionamenti logici e probabilistici:Questa proprietà si applica anche ai ragionamenti logici e probabilistici:un importante esempio della relazione tra restrizioni sintattiche e un importante esempio della relazione tra restrizioni sintattiche e complessità di ragionamentocomplessità di ragionamento

A

C

B D

F

E

Page 23: Slides Intelligenza Artificiale, Vincenzo Cutello 1 Problemi con soddisfacimento dei vincoli

Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello

2323

Algoritmi per i CSP strutturati ad Algoritmi per i CSP strutturati ad alberialberi

Il passo base è chiamato Il passo base è chiamato filtering filtering

FILTER (VFILTER (Vii, V, Vkk))

rimuovi i valori di Vrimuovi i valori di Vii che sono inconsistenti che sono inconsistenti

con tutti i valori di Vcon tutti i valori di Vkk

Esempio di filtering Esempio di filtering

Vi Vk

Coppie permesse<1,1><3,2><3,3>

Rimuovi 2 daldominio di Vi

Page 24: Slides Intelligenza Artificiale, Vincenzo Cutello 1 Problemi con soddisfacimento dei vincoli

Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello

2424

Algoritmi (cont.)Algoritmi (cont.)

2) Per k = n fino a 1, applica FILTER(V2) Per k = n fino a 1, applica FILTER(V ii, V, Vkk) dove V) dove Vii è un è un

genitore di Vgenitore di Vkk

3) Per k = 1 fino a n, scegli un valore legale per V3) Per k = 1 fino a n, scegli un valore legale per Vkk dato il dato il

valore del genitorevalore del genitore

A

C

B D

F

E

A CB D FE

1) Ordina nodi con BFS partendo da una foglia qualunqueOrdina nodi con BFS partendo da una foglia qualunque

Page 25: Slides Intelligenza Artificiale, Vincenzo Cutello 1 Problemi con soddisfacimento dei vincoli

Slides Intelligenza Artificiale, VincenSlides Intelligenza Artificiale, Vincenzo Cutellozo Cutello

2525

RiassuntoRiassuntoI CSP sono un genere speciale di problema:I CSP sono un genere speciale di problema:

stati definiti da valori di un insieme fissato di variabilistati definiti da valori di un insieme fissato di variabiliverifica dell’obiettivo definito da verifica dell’obiettivo definito da vincolivincoli sui valori delle variabili sui valori delle variabili

Backtracking = ricerca depth-first conBacktracking = ricerca depth-first con Ordine fissato delle variabiliOrdine fissato delle variabili Solo successori legaliSolo successori legali

Il controllo in avanti previene assegnamenti che portano al fallimentoIl controllo in avanti previene assegnamenti che portano al fallimento

Euristiche per l’ordine delle variabili e la selezione dei valori aiutano Euristiche per l’ordine delle variabili e la selezione dei valori aiutano significativamentesignificativamente

Il min-conflicts iterativo è Il min-conflicts iterativo è solitamentesolitamente efficace in pratica efficace in pratica

I CSP strutturati ad albero possono I CSP strutturati ad albero possono sempresempre essere risolti efficacemente essere risolti efficacemente