La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Slides Intelligenza Artificiale, Vincenzo Cutello 1 Problemi con soddisfacimento dei vincoli."— Transcript della presentazione:

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

2 Slides Intelligenza Artificiale, Vincenzo Cutello2 Outline Esempi di CSP Esempi di CSP Ricerca generale applicata ai CSP Ricerca generale applicata ai CSP Backtracking Backtracking Controllo in avanti Controllo in avanti Euristiche per i CSP Euristiche per i CSP

3 Slides Intelligenza Artificiale, Vincenzo Cutello3 Problemi con soddisfacimento dei vincoli Problema di ricerca standard: lo stato è una black box una qualsiasi vecchia struttura dati che supporta verifica dellobiettivo, valutazione, successore CSP: lo stato è definito da variabili V i con valori dal dominio D i la verifica dellobiettivo è un insieme di vincoli specificanti le combinazioni permesse di valori per sottoinsiemi di variabili

4 Slides Intelligenza Artificiale, Vincenzo Cutello4 Esempio: 4-regine come CSP Assumiamo una regina in ogni colonna. In quale riga andrà ognuna ? Variabili Q 1,Q 2,Q 3,Q 4 Domini D i = {1,2,3,4} Vincoli Q i Q k (non possono essere nella stessa riga) nella stessa riga) | Q i - Q k | |i-k| (o stessa diagonale) Traduciamo ogni vincolo in un insieme di valori permessi per le sue variabili Cioè, i valori per (Q 1,Q 2 ) sono (1,3) (1,4) (2,4) (3,1) (4,1) (4,2) Q 1 = 1 Q 2 = 3

5 Slides Intelligenza Artificiale, Vincenzo Cutello5 Grafo dei vincoli CSP binario; ogni vincolo coinvolge al più due variabili Grafo dei vincoli; i nodi sono variabili, gli archi rappresentano i vincoli Q1Q1 Q2Q2 Q3Q3 Q4Q4

6 Slides Intelligenza Artificiale, Vincenzo Cutello6 Esempio: Crittoaritmetica Variabili D E M N O R S Y S E N D Domini + M O R E {0,1,2,3,4,5,6,7,8,9} M O N E Y Vincoli M 0, S 0 (vincoli unari) Y = D+E o Y = D+E-10, etc. D E, D M, D N, etc. D E, D M, D N, etc.

7 Slides Intelligenza Artificiale, Vincenzo Cutello7 Esempio: Colorazione di mappe Colorare una mappa in maniera tale che non esistano due paesi adiacenti con lo stesso colore Variabili Paesi C i Domini {Rosso, Blu, Verde} Vincoli C 1 C 2, C 1 C 5, etc. Grafo dei vincoli: C1C1 C2C2 C3C3 C6C6 C4C4 C5C5 C6C6 C4C4 C2C2 C1C1 C 5 C3C3

8 Slides Intelligenza Artificiale, Vincenzo Cutello8 CSP nel mondo reale Problemi di assegnamento Problemi di assegnamento –per esempio, chi insegna questo corso Problemi di orari Problemi di orari –per esempio, quale corso è offerto, quando e dove ? Problemi di Scheduling Problemi di Scheduling Si noti che molti problemi del mondo reale coinvolgono variabili con valori reali

9 Slides Intelligenza Artificiale, Vincenzo Cutello9 Applicando la ricerca standard Iniziamo con lapproccio diretto Gli stati sono definiti tramite i valori fin qui assegnati Stato iniziale: Tutte le variabili senza alcun valore Operatori: assegna un valore a una variabile senza valore Verifica dellobiettivo: tutte le variabili assegnate, nessun vincolo violato Si noti che questo è uguale per tutti i CSP

10 Slides Intelligenza Artificiale, Vincenzo Cutello10 Implementazione Lo stato del CSP mantiene traccia di quali variabili hanno finora un valore Ogni variabile ha un dominio e un valore corrente datatype CSP-State components: UNASSIGNED, una lista di variabili ancore senza valore ASSIGNED, una lista di variabili che hanno un valore ASSIGNED, una lista di variabili che hanno un valore datatype CSP-Var components: NAME, per scopi di input/output DOMINIO, una lista di possibili valori DOMINIO, 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 permessi implicitamente per mezzo di una funzione che verifica il soddisfacimento del vincolo

11 Slides Intelligenza Artificiale, Vincenzo Cutello11 Ricerca Standard: colorazione di mappe NON ASSEGNATO C1 C2 C3 ASSEGNATO NON ASSEGNATO C2 C3 ASSEGNATO C1 = ROSSO NON ASSEGNATO C1 C3 ASSEGNATO C2 = BLU NON ASSEGNATO C1 C2 ASSEGNATO C3 = VERDE

12 Slides Intelligenza Artificiale, Vincenzo Cutello12 Complessità dellapproccio Dumb Max profondità dello spazio m = ?? n (numero di variabili) Profondità dello stato soluzione d = ?? n (tutte le variabili assegnate) Algoritmo di ricerca da usare ?? Depth-first Fattore di ramificazione b = ?? i |D i | (in cima allalbero) Questo può essere migliorato sostanzialmente notando: Lordine di assegnamento è irrilevante così molti percorsi sono equivalenti Lordine di assegnamento è irrilevante così molti percorsi sono equivalenti Laggiunta di un assegnamento non può correggere un vincolo già violato Laggiunta di un assegnamento non può correggere un vincolo già violato

13 Slides Intelligenza Artificiale, Vincenzo Cutello13 Ricerca con backtracking Usiamo la ricerca depth-first, ma 1) Fissiamo lordine di assegnamento, b = |D i | (può essere fatto nella funzione SUCCESSORI) 2) Controllo per le violazioni dei vincoli Il controllo del vincolo violato può essere implementato in due maniere: 1) modificando SUCCESSORI per assegnare solo valori che sono permessi, dati i valori già assegnati che sono permessi, dati i valori già assegnati 2) controllare che i vincoli siano soddisfatti prima di espandere uno stato espandere uno stato La ricerca con backtracking è lalgoritmo di base non informato per i CSP Può risolvere il problema delle n-regine con n 15

14 Slides Intelligenza Artificiale, Vincenzo Cutello14 Controllo in avanti Idea: mantenere traccia dei rimanenti valori legali per le variabili ancora senza valore Terminare la ricerca quando qualche variabile non ha più valori legali Esempio di colorazione di mappe semplificato: Può risolvere il problema delle n-regine fino a n 30 ROSSOBLUVERDE C1C1C1C1 C2C2C2C2 C3C3C3C3 C4C4C4C4 C5C5C5C5 C1C1 C2C2 C3C3 C4C4 C5C5

15 Slides Intelligenza Artificiale, Vincenzo Cutello15 ROSSOBLUVERDE C1C1C1C1 C2C2C2C2Х C3C3C3C3 C4C4C4C4Х C5C5C5C5Х

16 Slides Intelligenza Artificiale, Vincenzo Cutello16 ROSSOBLUVERDE C1C1C1C1 C2C2C2C2 C3C3C3C3Х C4C4C4C4Х C5C5C5C5Х

17 Slides Intelligenza Artificiale, Vincenzo Cutello17 ROSSOBLUVERDE C1C1C1C1 C2C2C2C2 C3C3C3C3 C4C4C4C4Х C5C5C5C5Х

18 Slides Intelligenza Artificiale, Vincenzo Cutello18 Euristiche per i CSP Più decisioni intelligenti su quali valori scegliere per ogni variabile quali variabili scegliere per lassegnamento Dati C 1 = Rosso, C 2 = Verde ?? C 3 = Verde: valore meno vincolante C 3 = Verde: valore meno vincolante Dati C 1 = Rosso, C 2 = Verde ?? C 5 : variabile più vincolata C 5 : variabile più vincolata Può risolvere il problema delle n-regine fino a n 1000 C6C6 C4C4 C2C2 C1C1 C 5 C3C3

19 Slides Intelligenza Artificiale, Vincenzo Cutello19 Algoritmi iterativi per i CSP Hill-climbing, simulated annealing lavorano tipicamente con stati completi, cioè, con tutte le variabili assegnate Per applicarli ai CSP: permettere stati con vincoli non soddisfatti operatori che riassegnano i valori alle variabili Selezione della variabile: selezionare in maniera random una qualsiasi variabile con conflitti Euristica min-conflicts: scegliere il valore che vìola il minor numero di conflitti, cioè, hillclimb con h(n) = numero totale di vincoli violati

20 Slides Intelligenza Artificiale, Vincenzo Cutello20 Esempio: 4-regine Stati: 4 regine in 4 colonne (4 4 = 256 stati) Operatori: muovi la regina lungo la colonna Verifica dellobiettivo: nessuno attacco Valutazione: h(n) = numero di attacchi h = 5h = 0h = 2

21 Slides Intelligenza Artificiale, Vincenzo Cutello21 Prestazioni del min-conflicts Dato uno stato iniziale random, può risolvere il problema delle n-regine in al più un tempo costante per n arbitrario con alta probabilità (cioè, n = ) Lo stesso sembra essere vero per un qualsiasi CSP generato in maniera random Eccetto in un piccolo range del rapporto numero di vincoli numero di vincoli R = R = numero di variabili numero di variabili Rapporto critico Tempo di CPU

22 Slides Intelligenza Artificiale, Vincenzo Cutello22 CSP strutturati ad albero Teorema: se il grafo dei vincoli non ha cicli, il CSP può essere risolto in tempo O(n|D| 2 ) Comparato al CSP generale, dove il tempo nel caso peggiore è O(|D| n ) Questa proprietà si applica anche ai ragionamenti logici e probabilistici: un importante esempio della relazione tra restrizioni sintattiche e complessità di ragionamento A C BD F E

23 Slides Intelligenza Artificiale, Vincenzo Cutello23 Algoritmi per i CSP strutturati ad alberi Il passo base è chiamato filtering FILTER (V i, V k ) rimuovi i valori di V i che sono inconsistenti con tutti i valori di V k Esempio di filtering ViVi VkVk Coppie permesse Rimuovi 2 dal dominio di V i

24 Slides Intelligenza Artificiale, Vincenzo Cutello24 Algoritmi (cont.) 2) Per k = n fino a 1, applica FILTER(V i, V k ) dove V i è un genitore di V k genitore di V k 3) Per k = 1 fino a n, scegli un valore legale per V k dato il valore del genitore valore del genitore A C BD F E A CBDFE Ordina nodi con BFS partendo da una foglia qualunque 1) Ordina nodi con BFS partendo da una foglia qualunque

25 Slides Intelligenza Artificiale, Vincenzo Cutello25 Riassunto I CSP sono un genere speciale di problema: stati definiti da valori di un insieme fissato di variabili verifica dellobiettivo definito da vincoli sui valori delle variabili Backtracking = ricerca depth-first con Ordine fissato delle variabili Ordine fissato delle variabili Solo successori legali Solo successori legali Il controllo in avanti previene assegnamenti che portano al fallimento Euristiche per lordine delle variabili e la selezione dei valori aiutano significativamente Il min-conflicts iterativo è solitamente efficace in pratica I CSP strutturati ad albero possono sempre essere risolti efficacemente


Scaricare ppt "Slides Intelligenza Artificiale, Vincenzo Cutello 1 Problemi con soddisfacimento dei vincoli."

Presentazioni simili


Annunci Google