1 Capitolo 2: Semplificazione, Ottimizzazione e Implicazione
2 Semplificazione, Ottimizzazione e Implicazione u Semplificazione di vincoli u Proiezione u Semplificatori di vincoli u Ottimizzazione u Implicazione ed equivalenza
3 Semplificazione di vincoli u Due vincoli equivalenti rappresentano la stessa informazione, ma … u Uno puo essere piu semplice dellaltro Rimuovere vincoli ridondanti, riscrivere un vincolo primitivo, cambiare lordine, sostituire usando una equazione, tutti preservano lequivalenza
4 Vincoli ridondanti u Un vincolo C1 implica un altro vincolo C2 se le soluzioni di C1 sono un sottoinsieme di quelle di C2 u C2 e detto ridondante rispetto a C1 u Scriviamo:
5 Vincoli ridondanti u Possiamo rimuovere un vincolo primitivo che e ridondante rispetto al resto dei vincoli Cosi otteniamo un vincolo piu semplice
6 Risolutori a forma risolta u Un risolutore a forma risolta crea vincoli equivalenti puo essere visto come un semplificatore Per esempio usando il risolutore per equazioni di termini O usando il risolutore di Gauss-Jordan
7 Proiezione Diventa anche piu importante semplificare quando siamo solo interessati ad alcune variabili nel vincolo Semplificato rispetto a V e I:
8 Proiezione u La proiezione di un vincolo C sulle variabili V e un vincolo C1 tale che u C1 ha solo le variabili in V u Ogni soluzione di C e una soluzione di C1 u Una soluzione di C1 puo essere estesa per ottenere una soluzione di C
9 Algoritmo di Fourier u Elimina una variabile y da disequazioni lineari C u Scrive ogni diseq con y su un lato: u Per ogni coppia u produce una nuova diseq u Il risultato e un insieme di nuove diseq e quelle diseq in C che non riguardano y
10 Esempio Proiettiamo fuori Y: Il risultato contiene solo X:
11 Proiettare i vincoli sugli alberi u Possiamo proiettare vincoli sui termini u Proiettato su {X,Z} e u Ma cosa e X = cons(Y,Z) proiettato su X? u Risposta: non ce un tale vincolo!
12 Semplificatori di vincoli u vincoli C1 and C2 sono equivalenti rispetto alle variabili in V se u Prendendo una soluzione di uno dei due, e restringendola alle variabili in V, questa soluzione ristretta puo essere estesa ad una soluzione dellaltro u Example X=succ(Y) and X=succ(Z) wrt {X}
13 Definizione di semplificatore u Un semplificatore di vincoli e una funzione simpl che prende un vincolo C e un insieme di variabili V e ritorna un vincolo C1 che e equivalente a C rispetto a V u Possiamo creare un semplificatore per disequazioni lineari usando lalgoritmo di Fourier
14 Semplificatore per vincoli sugli alberi u Applicare il risolutore per equazioni di termini a C e ottenere C1 u se C1 e false allora return false u Per ogni equazione x=t in C1 u se x e in V allora u se t e una variabile non in V u sostituire x per t in C1 e nel risultato u altrimenti aggiungere x=t al risultato u return risultato
15 Esempio di semplificazione sugli alberi Vincolo sugli alberi da semplificare rispetto a {Y,T}: Vincolo equivalente dal risolutore sugli alberi: Eliminare le prime due equazioni, tenere la terza e usare lultima per sostituire T con U:
16 Proprieta dei semplificatori u Proprieta desiderabili di un semplificatore: u proiettante: u Debolmente proiettante: per tutti I vincoli C2 che sono equivalenti a C1 rispetto a V u Un risolutore debolmente proiettante non usa mai piu variabili di quelle necessarie u Entrambe le proprieta permettono ad un semplificatore di essere usato come un risolutore
17 Ottimizzazione u Spesso dato un problema modellato con vincoli, non vogliamo una qualsiasi soluzione, ma una soluzione ottima u Quindi si ha un problema di ottimizzazione u Abbiamo bisogno di una funzione obbiettivo in modo da poter paragonare soluzioni, cioe un mapping da soluzioni a valori reali
18 Problema di ottimizzazione u Un probleema di ottimizzazione (C,f) consiste di un vincolo C e una funzione obbiettivo f u Una valutazione v1 e preferita alla valutazione v2 se f(v1) < f(v2) u Una soluzione ottima e una soluzione di C tale che non esiste nessunaltra soluzione di C che e preferita a lei.
19 Esempio di ottimizzazione Un problema di ottimizzazione: Trovare il punto piu vicino allorigine che soddisfi C. Alune soluzioni e il valore di f : Soluzione ottima:
20 Ottimizzazione u Alcuni problemi di ottimizzazione non hanno soluzioni u Il vincolo non ha soluzioni: u Il problema non ha ottimo: u Per ogni soluzione, ce ne sempre unaltra migliore
21 Algoritmo del simplesso u Lalgoritmo piu usato per lottimizzazione u Ottimizza un funzione lineare rispetto a dei vincoli lineari u Collegato alleliminazione di Gauss-Jordan
22 Algoritmo del simplesso u Un problema di ottimizzazione (C, f) e in forma simplesso se: u C e la congiunzione di CE e CI u CE e una congiunzione di equazioni lineari u CI vincola tutte le variabili in C ad essere non negative u f e una espressione lineare sulle variabili in C
23 Esempio del simplesso Un problema di ottimizzazione in forma simplesso Un problema arbitrario puo essere messo in forma simplesso: rimpiazzando ogni variabile non vincolata X con nuove variabili Rimpiazzando ogni disequazione con una nuova variabile s e
24 Simplex Solved Form u A simplex optimization problem is in basic feasible solved (bfs) form if: u The equations are in solved form u Each constant on the right hand side is non- negative u Only parameters occur in the objective u A basic feasible solution is obtained by setting each parameter to 0 and each non- parameter to the constant in its equation
25 Simplex Example An equivalent problem to that before in bfs form We can read off a solution and its objective value
26 Simplex Algorithm starting from a problem in bfs form repeat Choose a variable y with negative coefficient in the obj. func. Find the equation x = b + cy +... where c<0 and -b/c is minimal Rewrite this equation with y the subject y = -b/c + 1/c x +... Substitute -b/c + 1/c x +... for y in all other eqns and obj. func. until no such variable y exists or no such equation exists if no such y exists optimum is found else there is no optimum solution
27 Simplex Example Choose variable Y, the first eqn is only one with neg. coeff Choose variable Z, the 2nd eqn is only one with neg. coeff No variable can be chosen, optimal value 2 is found
28 Another example An equivalent simplex form is: An optimization problem showing contours of the objective function
29 Another example Basic feasible solution form: circle Choose S3, replace using 2nd eq Optimal solution: box
30 The Missing Part u How do we get the initial basic feasible solution? u Solve a different simplex problem u Add artificial variables to make equations in basic feasible solved form u Minimize the sum of the artificial variables u If the sum is zero we can construct a bfs for the original problem
31 The Missing Part Example Original simplex form equations With artificial vars in bfs form: Objective function: minimize
32 Missing Part Example II Problem after minimization of objective function Removing the artificial variables, the original problem
33 Implicazione ed Equivalenza u Altre importanti operazioni sui vincoli: u implicazione: controlla se C1 implica C2 u impl(C1, C2) risponde true, false o unknown u equivalenza: controlla se C1 e C2 sono equivalenti u equiv(C1, C2) risponde true, false o unknown
34 Esempio di implicazione Per I vincoli della casa CH, lo stadio B sara raggiunto dopo lo stadio C? Per questa domanda la risposta e false, ma se richiediamo che la casa sia finita in 15 giorni la risposta e true
35 Implicazione ed Equivalenza u Possiamo usare impl per definire equiv e viceversa: u Possiamo usare un risolutore per testare impl: u Es.:
36 Sommario su semplificazione, ottimizzazione e implicazione u Vincoli equivalenti possono essere scritti in varie forme, quindi serve la semplificazione u Soprattutto se siamo solo interessati allinterazione tra alcune delle variabili u Molti problemi necessitano di soluzioni ottime, ci sono algoritmi (es.: simplesso) per trovarle u Posssiamo anche voler fare domande che riguardano limplicazione