Problemi con soddisfacimento dei vincoli

Slides:



Advertisements
Presentazioni simili
Premessa: si assume di aver risolto (correttamente
Advertisements

Algoritmi e Strutture dati Mod B
Algoritmi e Strutture Dati
Problema dellordinamento Input: Sequenza di n numeri Output: Permutazione π = tale che: a 1 a 2 …… a n Subroutine in molti problemi E possibile effettuare.
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2005/2006.
AGENTI CHE RISOLVONO PROBLEMI Ottimizzazione euristica
Intelligenza Artificiale marco ernandes Gennaio – Aprile 2007.
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Depth-first search Visita in profondità di un grafo Algoritmo Esempio
Teoria e Implementazione
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Algoritmi e Strutture Dati
Intelligenza Artificiale 1 Gestione della conoscenza lezione 5 Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a
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.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Boruvka Algoritmi.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Algoritmi e Strutture Dati
Alberi di Ricorrenza Gli alberi di ricorrenza rappresentano un modo conveniente per visualizzare i passi di sostitu- zione necessari per risolvere una.
Algoritmi e Strutture Dati Introduzione. Gli argomenti di oggi Analisi della bontà degli algoritmi Modello Computazionale Tempo di esecuzione degli algoritmi.
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e strutture dati
Algoritmi e Strutture Dati (Mod. B)
Analisi e Sintesi di circuiti sequenziali. Definizione Una macchina sequenziale é un sistema nel quale, detto I(t) l'insieme degli ingressi in t, O(t)
Programmazione logica
Intelligenza Artificiale
Intelligenza Artificiale
Algoritmi e Strutture Dati
La complessità media O(n log n) di Quick-Sort vale soltanto se tutte le permutazioni dell’array in ingresso sono ugualmente probabili. In molte applicazioni.
Slides di Teoria dei Giochi, Vincenzo Cutello
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Risoluzione di problemi e ricerca
Slides Intelligenza Artificiale, Vincenzo Cutello
Intelligenza Artificiale
3. Forma Strategica e ricerca dell’equilibrio
Intelligenza Artificiale 2 Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Algoritmi online Maria Simi, a.a. 2007/08 Problemi di esplorazione  Gli agenti per il problem-solving assumono:  ambienti deterministici e osservabili.
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Terza giornata: principali classi di complessità computazionale dei problemi Guido Proietti.
Capitolo 9 Il problema della gestione di insiemi disgiunti (Union-find) Algoritmi e Strutture Dati.
Intelligenza Artificiale Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2008/2009.
Intelligenza Artificiale 2 Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Risolvere vincoli soft Francesca Rossi Giugno 2004.
1/20 NP completezza. 2/20 Problemi astratti Un problema è un’entità astratta (es. il TSP). Una istanza del problema è un suo caso particolare in cui vengono.
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.
Ricerca locale M. Simi, Algoritmi di ricerca locale  Efficienti in occupazione di memoria: tengono traccia solo dello stato corrente (non.
Intelligenza Artificiale Metodologie di ragionamento Prof. M.T. PAZIENZA a.a
1 Vincoli ‘Programming with constraints’ Capitolo 1.
Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal Algoritmi e Strutture Dati.
Intelligenza Artificiale Risoluzione di Problemi
Ricerca locale M. Simi, Algoritmi di ricerca locale  Efficienti in occupazione di memoria  tengono traccia solo dello stato corrente (non.
Flusso di Costo Minimo Applicazione di algoritmi: Cammini Minimi Successivi (SSP) Esercizio 1 Sia data la seguente rete di flusso, in cui i valori riportati.
Ricerca locale Maria Simi Assunzioni sui problemi  Gli algoritmi visti esplorano gli spazi di ricerca alla ricerca di un goal e restituiscono.
Algoritmi e Strutture Dati HeapSort. Select Sort: intuizioni L’algoritmo Select-Sort  scandisce tutti gli elementi dell’array a partire dall’ultimo elemento.
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2011/2012.
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Algoritmi e Strutture Dati Luciano Gualà
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2013/2014.
ASD a.a.2010/2011- Lezione 12 Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi Backtracking/ Branch and Bound Lezione n°12.
Transcript della presentazione:

Problemi con soddisfacimento dei vincoli Slides Intelligenza Artificiale, Vincenzo Cutello

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

Problemi con soddisfacimento dei vincoli Problema di ricerca standard: lo stato è una “black box” una qualsiasi vecchia struttura dati che supporta verifica dell’obiettivo, valutazione, successore CSP: lo stato è definito da variabili Vi con valori dal dominio Di la verifica dell’obiettivo è un insieme di vincoli specificanti le combinazioni permesse di valori per sottoinsiemi di variabili Slides Intelligenza Artificiale, Vincenzo Cutello

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

Slides Intelligenza Artificiale, Vincenzo Cutello Grafo dei vincoli CSP binario; ogni vincolo coinvolge al più due variabili Grafo dei vincoli; i nodi sono variabili, gli archi rappresentano i vincoli Q1 Q2 Q3 Q4 Slides Intelligenza Artificiale, Vincenzo Cutello

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. Slides Intelligenza Artificiale, Vincenzo Cutello

Esempio: Colorazione di mappe Colorare una mappa in maniera tale che non esistano due paesi adiacenti con lo stesso colore Variabili Paesi Ci Domini {Rosso, Blu, Verde} Vincoli C1 ≠ C2, C1 ≠ C5, etc. Grafo dei vincoli: C1 C2 C3 C5 C6 C4 C1 C2 C5 C3 C6 C4 Slides Intelligenza Artificiale, Vincenzo Cutello

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

Applicando la ricerca standard Iniziamo con l’approccio 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 dell’obiettivo: tutte le variabili assegnate, nessun vincolo violato Si noti che questo è uguale per tutti i CSP Slides Intelligenza Artificiale, Vincenzo Cutello

Slides Intelligenza Artificiale, Vincenzo Cutello 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 datatype CSP-Var components: NAME, per scopi di input/output DOMINIO, una lista di possibili valori 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 Slides Intelligenza Artificiale, Vincenzo Cutello

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 Slides Intelligenza Artificiale, Vincenzo Cutello

Complessità dell’approccio “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 |Di| (in cima all’albero) Questo può essere migliorato sostanzialmente notando: L’ordine di assegnamento è irrilevante così molti percorsi sono equivalenti L’aggiunta di un assegnamento non può correggere un vincolo già violato Slides Intelligenza Artificiale, Vincenzo Cutello

Ricerca con backtracking Usiamo la ricerca depth-first, ma 1) Fissiamo l’ordine di assegnamento,  b = |Di| (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 2) controllare che i vincoli siano soddisfatti prima di espandere uno stato La ricerca con backtracking è l’algoritmo di base non informato per i CSP Può risolvere il problema delle n-regine con n ≈ 15 Slides Intelligenza Artificiale, Vincenzo Cutello

Slides Intelligenza Artificiale, Vincenzo Cutello 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: C1 ROSSO BLU VERDE C1 C2 C3 C4 C5 C4 C5 C2 C3 Può risolvere il problema delle n-regine fino a n ≈ 30 Slides Intelligenza Artificiale, Vincenzo Cutello

Slides Intelligenza Artificiale, Vincenzo Cutello ROSSO BLU VERDE C1 √ C2 Х C3 C4 C5 Slides Intelligenza Artificiale, Vincenzo Cutello

Slides Intelligenza Artificiale, Vincenzo Cutello ROSSO BLU VERDE C1 C2 √ C3 Х C4 C5 Slides Intelligenza Artificiale, Vincenzo Cutello

Slides Intelligenza Artificiale, Vincenzo Cutello ROSSO BLU VERDE C1 C2 C3 √ C4 Х C5 Slides Intelligenza Artificiale, Vincenzo Cutello

Slides Intelligenza Artificiale, Vincenzo Cutello Euristiche per i CSP Più decisioni intelligenti su quali valori scegliere per ogni variabile quali variabili scegliere per l’assegnamento Dati C1 = Rosso, C2 = Verde ?? C3 = Verde: valore meno vincolante C5 : variabile più vincolata Può risolvere il problema delle n-regine fino a n ≈ 1000 C1 C2 C3 C5 C6 C4 Slides Intelligenza Artificiale, Vincenzo Cutello

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 Slides Intelligenza Artificiale, Vincenzo Cutello

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

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 = 10.000.000) Lo stesso sembra essere vero per un qualsiasi CSP generato in maniera random Eccetto in un piccolo range del rapporto numero di vincoli R = ──────────── numero di variabili Tempo di CPU Rapporto critico Slides Intelligenza Artificiale, Vincenzo Cutello

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 E B D C F Slides Intelligenza Artificiale, Vincenzo Cutello

Algoritmi per i CSP strutturati ad alberi Il passo base è chiamato filtering FILTER (Vi, Vk) rimuovi i valori di Vi che sono inconsistenti con tutti i valori di Vk Esempio di filtering Coppie permesse <1,1> <3,2> <3,3> Vi Vk Rimuovi 2 dal dominio di Vi Slides Intelligenza Artificiale, Vincenzo Cutello

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

Slides Intelligenza Artificiale, Vincenzo Cutello Riassunto I CSP sono un genere speciale di problema: stati definiti da valori di un insieme fissato di variabili verifica dell’obiettivo definito da vincoli sui valori delle variabili Backtracking = ricerca depth-first con Ordine fissato delle variabili Solo successori legali Il controllo in avanti previene assegnamenti che portano al fallimento Euristiche per l’ordine 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 Slides Intelligenza Artificiale, Vincenzo Cutello