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.

Slides:



Advertisements
Presentazioni simili
Strutture dati per insiemi disgiunti
Advertisements

Ricorrenze Il metodo di sostituzione Il metodo iterativo
Process synchronization
Liste di Interi Esercitazione. Liste Concatenate Tipo di dato utile per memorizzare sequenze di elementi di dimensioni variabile Definizione tipicamente.
Informatica Generale Marzia Buscemi
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2005/2006.
La scelta del paniere preferito
Grafi Algoritmi e Strutture Dati. Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Algoritmi e strutture dati 2/ed 2 Copyright © The McGraw.
Algoritmi e Strutture Dati
Lez. 91 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Alberi di ricerca.
esponente del radicando
Alberi binari di ricerca
Il mercato dei beni in economia aperta
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Heap binomiali.
Cammini minimi con sorgente singola
Ordini Parziali - Reticoli
Reaching Definitions. Tino CortesiTecniche di Analisi di Programmi 2 Reaching definitions Dato un punto del programma, quali sono i comandi di assegnamento.
Semantiche dei linguaggi di programmazione
Ordini Parziali - Reticoli
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 21 Marzo 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 20 Marzo 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
1 Capitolo 2: Semplificazione, Ottimizzazione e Implicazione.
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
Algoritmo di Ford-Fulkerson
Algoritmi e Strutture Dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
1 Corso di Informatica (Programmazione) Lezione 10 (12 novembre 2008) Programmazione in Java: espressioni booleane e controllo del flusso (selezione)
Trovare il percorso minimo da b ad ogni altro vertice
Seminario su clustering dei dati – Parte II
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
Criticità sui dati (esempio da fare on line)
Programmazione a vincoli: algoritmi di scheduling in OPL
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
OPERAZIONI CON TRINOMI DI II° GRADO
Strutture di controllo in C -- Flow Chart --
Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio.
Lezione 8 Numerosità del campione
Intelligenza Artificiale
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
1 Programmazione = decomposizione basata su astrazioni (con riferimento a Java)
Anche la RB-Delete ha due fasi: Nella prima viene tolto un nodo y avente uno dei sottoalberi vuoto sostituendolo con la radice dellaltro sottoalbero. Per.
Elementi di Informatica di base
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
Radix-Sort(A,d) // A[i] = cd...c2c1
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
1 Questionario di soddisfazione ATA - a. sc. 2008/09 Il questionario è stato somministrato nel mese di aprile Sono stati restituiti 29 questionari.
Prof. Cerulli – Dott.ssa Gentili
1 Astrazioni sui dati : Ragionare sui Tipi di Dato Astratti dispense prof. G. Levi.
1101 = x 10 x 10 x x 10 x = CORRISPONDENZE
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 18 Ottobre.
14 marzo 2002 Avvisi:.
1Piero Scotto - C14. Finalità del corso Programma Materiale Requisiti Spendibilità 2Piero Scotto - C14.
Cammini minimi da un sorgente
Bando Pittori e Scultori in Piemonte alla metà del ‘700
OPERAZIONI CON TRINOMI DI II° GRADO
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 21 Agosto.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 20 Ottobre 2014.
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
Problemi di soddisfacimento di vincoli Maria Simi a.a. 2008/2009.
Risolvere vincoli soft Francesca Rossi Giugno 2004.
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.
1 Vincoli ‘Programming with constraints’ Capitolo 1.
Progetti Regole dei progetti Due studenti per progetto Due studenti per progetto Lavoro indipendente, con coordinamento per mettere insieme le due.
Transcript della presentazione:

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 con il dominio consistente sugli iper-archi:

2 Ottenere la consistenza sui limiti u Dato un dominio D, vogliamo modificare i limiti dei domini in modod che sia consistente sui limiti u Si usano delle regole di propagazione

3 Ottenere la consistenza sui limiti Consideriamo il vincolo primitivo X = Y + Z che e equivalente alle tre forme: Ragionando sui valori minimi e massimi: Regole di propagazione per il vincolo X = Y + Z

4 Ottenere la consistenza sui limiti Le regole di propagazione determinano che: Quindi i domini possono essere ridotti a:

5 Altre regole di propagazione Dato il dominio iniziale: Determiniamo che: Nuovo dominio:

6 Disequazioni Le disequazioni generano delle regole di propagazioni deboli: ce propagazione solo quando una variabile ha un valore fisso che e uguale al minimo o massimo dellaltra variabile

7 Moltiplicazione Se tutte le variabili sono positive, e semplice: Ma se le variabili possono essere 0 o negative? Esempio: Diventa:

8 Moltiplicazione Calcolare i limiti di X esaminando i valori estremi: Simile per limite superiore usando il massimo. Ma questo non funziona per Y e Z? Se min(D,Z) 0 non ce nessuna restrizione per Y Stiamo usando numeri reali (es. 4/d)

9 Moltiplicazione Possiamo aspettare finche il range di Z e non negativo o non positivo e poi usare le regole Divisione per 0:

10 Algoritmo per la consistenza sui limiti u Applica ripetutamente le regole di propagazione ad ogni vincolo primitivo finche non viene modificato nessun dominio u Non dobbiamo ri-esaminare un vincolo primitivo se i domini delle sue variabili non sono modificati

11 Esempio di consistenza sui limiti Problema dello zaino del ladro (senza whisky) Non ce piu nessuna modifica. Notare che abbiamo dovuto riesaminare il vincolo di profitto.

12 Risolutore per la consistenza sui limiti bounds_consistent u D := bounds_consistent(C,D) u if D e un dominio falso u return false u if D e un dominio valutazione u return satisfiable(C,D) u return unknown

13 Ricerca con backtracking combinata con la consistenza sui limiti u Applicare la consistenza sui limiti prima di iniziare la ricerca con backtracking e dopo ogni assegnamento di un valore ad una variabile

14 Esempio Problema del ladro Dominio corrente: Consistenza sui limiti iniziale: W = 0 P = 1 (0,1,3) Trovata una soluzione: return true

15 Esempio Problema del ladro Dominio corrente: Consistenza sui limiti iniziale:Backtrack P = 2 false Backtrack P = 3 W = 0 P = 1 (0,1,3) (0,3,0) W = 1 (1,1,1) W = 2 (2,0,0) Non ci sono altre soluzioni

16 Consistenza generalizzata u Possiamo usare qualunque metodi di consistenza diversi su vincoli diversi, e comunicheranno attraverso I dimini delle variabili u node consistency : per vincoli primitivi con 1 u arc consistency: per vinoli primitivi con 2 var u bounds consistency: altri vincoli primitivi u A volte possiamo eliminare piu valori usando vincoli complessi e metodi di consistenza specializzati

17 Alldifferent u alldifferent({V1,...,Vn}) e soddisfatto quando ogni variabile V1,..,Vn ha un valore diverso u alldifferent({X, Y, Z}) e equivalente a u E consistente sugli archi con il dominio u Ma non ce soluzione! la consistenza specializzata per alldifferent puo scoprirlo

18 Alldifferent Consistency u Sia c della forma alldifferent(V) u while esiste v in V dove D(v) = {d} u V := V - {v} u for ogni v in V u D(v) := D(v) - {d} u DV := unione di tutti i D(v) per v in V u if |DV| < |V| then return false domain u return D

19 Alldifferent Examples DV = {1,2}, V={X,Y,Z} quindi scopre la non soddisfacibilita DV = {1,2,3,4,5}, V={X,Y,Z,T} non la scopre Algoritmi basti su matching massimo potrebbero scoprirla:

20 Altri vincoli complessi u schedulare n lavori con tempi iniziali Si e durate Di che usano risorse Ri in cui L risorse sono disponibili in ogni momento u Accesso allarray: se I = i, allora X = Vi e se X != Vi allora I != i

21 Ottimizzazione per CSPs u Dato che i domini sono finiti, possiamo usare un risolutore per costruire un ottimizzatore banale u retry_int_opt u retry_int_opt(C, D, f, best) int_solv u D2 := int_solv(C,D) u if D2 e un dominio falso then return best u sia sol la soluzione corrispondente a D2 retry_int_opt u return retry_int_opt(C /\ f < sol(f), D, f, sol)

22 Esempio Problema del ladro (ottimizzare il profitto) First solution found: Corresponding solution Next solution found: Nessuna altra soluzione! Return la sol. migliore

23 Backtracking + Ottimizzazione u Dato che il risolutore puo usare la ricerca con backtracking, e meglio combinarla con lottimizzazione u Ad ogni passo della ricerca con backtracking, se best e la soluzione ottima vista finora, aggiungi il vincolo f < best(f)

24 Esempio Smugglers knapsack problem (whiskey available) Dominio corrente: Consistenza sui limiti iniziale: W = 0 P = 1 (0,1,3) Soluzione trovata aggiungi il vincolo Problema del ladro

25 Esempio Consistenza sui limiti iniziale: P = 2 false P = 3 false W = 1 (1,1,1) Modify constraint W = 0 P = 1 (0,1,3) Problema del ladro W = 2 false Return lultima sol (1,1,1)

26 Ottimizzazione con Branch and Bound u Il metodo precedente, a differenza del simplesso, non usa la funzione obbiettivo per dirigere la ricerca u Ottimizzazione branch and bound per (C,f) u Usare il simplesso per trovare una soluzione reale u Se la soluzione e intera, stop u Altrimenti scegliere una var x con valore non intero d e esaminare I problemi u Usare la soluzione ottima corrente per vincolare I problemi

27 Esempio Problema del ladro Soluzione (2,0,0) = 30 false Soluzione (1,1,1) = 32 Peggio della sol ottima false

28 Finite Constraint Domains Summary u CSPs form an important class of problems u Solving of CSPs is essentially based on backtracking search u Reduce the search using consistency methods u node, arc, bound, generalized u Optimization is based on repeated solving or using a real optimizer to guide the search