Schedulazione: più macchine. Schedulazione: più macchine. Modello. Modello. job composti di un unico task da schedulare su una tra più macchine;

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Schedulazione: più macchine. Schedulazione: più macchine. Modello. Modello. job composti di un unico task da schedulare su una tra più macchine;"

Transcript

1 Schedulazione: più macchine Schedulazione: più macchine casi: job composti di un unico task da schedulare su una tra più macchine; open shop (tutti i job hanno task su tutte le macchine, ma non le stesse precedenze); flow shop (tutti i job hanno task su tutte le macchine e le stesse precedenze; job shop (caso generale, non tutti i job hanno task su tutte le macchine, ma possono avere più task sulla stessa macchina). 1 job composti di un unico task da schedulare su una tra più macchine; 2 Modello Ogni job i degli n da eseguire si ritiene caratterizzato da: parametri p i : tempo di esecuzione (processing time) r i : tempo di rilascio/lancio (release time) d i : data di consegna (due date) D i : data di recesso (deadline) Ogni macchina j delle m parallele si ritiene caratterizzato da: parametri o j : tempo di inizio disponibilità (opening time) cl j : tempo di termine disponibilità (closing time) v ij : velocità* esecuzione job i (speed) * il tempo effettivo di esecuzione è p i /v ij Modello variabili decisionali (caso senza preemption) x ij : assegnamento job i macchina j C i : tempo completamento job (completion time) di solito variabile principale t i = C i -p i : tempo inizio esecuzione (starting time) W i = t i -r i : tempo attesa (waiting time) F i = C i -r i : tempo permanenza/attraversamento nel sistema (flow time) L i = C i -d i : tempo di ritardo (lateness) T i = (C i -d i ) + : ritardo (tardiness) U i = 1{C i > D i }: violazione della deadline (tardy) E i = (d i -C i ) + : anticipo (earliness) 3 4

2 Terminologia A seconda della velocità relativa le macchine si dicono P: parallele, v ij =v, i,j, dal punto di vista operativo le macchine sono identiche, Q: uniformi, v ij = v j, i, la velocità relativa delle macchine non dipende dal job eseguito, R: non correlate, v ij v ik, i,j,k la velocità relativa delle macchine dipende dal job eseguito Uno scheduling è detto List Scheduling (LS) quando i job vengono ordinati secondo un criterio qualunque e, non appena una macchina è disponibile, viene eseguito quello il job con priorità più alta tra quelli immediatamente disponibili. P/ /Σ i C i Problema: minimizzare il tempo medio di completamento su macchine parallele di job con identica release time. Teorema: la politica Shortest Processing Time first (SPT) determina la soluzione ottima. Si eseguono per prima i task con tempo di esecuzione minore assegnandoli alla prima macchina disponibile. 5 6 R/ /Σ i C i Definendo x ijk la variabile che indica che il jmo job deve essere assegnato alla ima macchina in kma posizione dalla fine, formulando il problema come PLI si osserva che si ottiene un problema di bipartite matching O(n 3 ): min Σ i Σ j Σ k k p j x ijk /v ij (si moltiplica per k poichè il job influenzerà i k-1 job successivi) Σ i Σ k x ijk =1 j (job assegnato) Σ j x ijk 1 i,k (non più di un job per posizione) x ijk {0, 1} 7 P/.../Σ i C i I problemi diventano NP-hard non appena viene introdotta qualche complicazione, e.g., P 2//Σ i w i C i, P 2/tree/ Σ i C i, P 2/r i / Σ i C i, P 2//C max. Applicando la regola di Smith per P 2//Σ i w i C i si ottiene una (1+ 2)/2 approssimazione. Nel caso P//Σ i w i C i si possono anche definire schemi completamente polinomiali nel numero di job, ma esponenziali nel numero di macchine 8

3 Q/p j =1/Σ j g j Q/p j =1/g max Il problema Q/p j =1/Σ j g j è risolvibile tramite bipartite matching: si definisce x ijk la variabile binaria che indica che il jmo job deve essere assegnato alla ima macchina nella kma slot temporale il costo è min Σ i Σ j Σ k g j (k/v i ) x ijk Q/p j =1/Σ j w i C i, Q/p j =1/Σ j T i, Q/p j =1/Σ j w i U i, sono risolti anche con algoritmi ad hoc. Q/ r j,p j =1/Σ j C i, è NP-hard Q/p j =1/g max per g generico è risolvibile generalizzando Lawler: si considerano i completion time C j possibili dal minimo al massimo e per ognuno di essi si schedula il job con costo minimo. Q/p j =1/L max, Q/ r j,p j =1/L max sono risolti anche con algoritmi ad hoc P/pmtn/Σ i w i C i P/ /C max Per il problema P/pmtn/Σ i w i C i il teorema di McNaughton indica che non c è alcuno schedule con un numero finito di preemption (si può generalizzare all infinito) che garantisca una soluzione migliore di quella senza preemption. I risultati sulla complessità risultano inoltre identici al caso senza preemption. Il teorema non si applica nel caso di macchine uniformi Q/pmtn/Σ i w i C i, comunque Q/pmtn/ wc max + Σ i C i è polinomiale. Il problema Q/pmtn/Σ i w i U i è NP-hard anche se w i =1. Problema: minimizzare il tempo di completamento dell ultimo job su macchine parallele di job con identica release time. Teorema: il problema è NP-hard (riduzione da bin packing). La politica Longest Processing Time first (LPT) è in generale una buona euristica. Si eseguono per prima i task con tempo di esecuzione maggiore assegnandoli alla prima macchina disponibile

4 P/ /C max Teorema: qualunque List Scheduling (LS) è 2-1/m approssimante. Prova: sia k l ultimo job ad essere schedulato l approssimazione si ottiene osservando che C max (LS) Σ j k p j /m + p k Tale valore è stretto, m(m-1) job con p j =1 e p n =m. In probabilità se n cresce più velocemente di m, il LS è ottimo. Se si si sceglie LPT si ottiene una 4/3-1/3m approssimazione. Da studi probabilistici LPT sembra essere migliore di un arbitrario LS, inoltre per n che tende all infinito l errore rispetto allo scheduling ottimo tende a zero quasi sicuramente con velocità n -c per qualche c costante. 13 Esempio: P 2//C max vs P 2/ /Σ i C i Job p i j 1 3 j 2 4 j 3 2 j 4 4 j 5 4 j 6 2 j 7 13 j 8 2 j 2 j 4 j 7 j 5 j 1 schedule LPT, C max = 17 ottimo, Σ i C i /n = j 3 j 8 j 2 j 5 j 6 j 1 j 4 j 7 schedule SPT, C max =22, Σ i C i /n = 7.5 ottimo j 3 j 6 j 8 14 Problema P 3/ / C max Job p i j 1 6 j 2 4 j 3 7 j 4 3 j 5 5 j 6 9 j 7 2 j 8 3 Esempio j 1 j 5 j 7 j 3 j 4 j 6 j 8 j 2 0 schedule ottimo 13 j 1 j 5 j 8 j 3 j 2 j 6 j 4 j 7 0 LPT non ottimo 14 P/ /C max Migliori approssimazioni in tempi O(nlogn+knlogm) possono ottenersi con il MultiFit (MF), dove si cerca di trovare, attraverso ricerca binaria e k tentativi di packing, la capacità minima che m bin possono avere per contenere i job che sono assegnati al primo bin in cui riescono ad essere inseriti. Una variazione del MF detto dual approximation algorithm produce uno schema di approssimazione polinomiale. Fissato il numero di macchine esistono schemi polinomiali che usano anche la programmazione dinamica. Siccome il problema è NP-hard in senso forte non dovrebbe esistere uno schema di approssimazione completamente polinomiale

5 P/r i /L max Q/ /C max Il problema P/r i /L max è NP-hard LS è 2 approssimante; EDD induce un errore massimo t.c.: L max (EDD) - L* max (2m - 1)max j p j /m; Il problema P/r i,p j =p/l max è polinomiale. Per il problema Q//C max si estendono i risultati del caso P//C max, cambiano di poco in peggio i valori delle approssimazioni. Negli schedule può essere conveniente inserire degli idle time, invece di assegnare alla prima macchina libera si deve assegnare alla prima macchina che termina i job R/ /C max P/pmtn /C max Nel caso di R//C max i problemi sono più difficili che nel caso uniforme. Non dovrebbero esistere polinomial scheme c-approssimante con c <3/2. Anche se, fissato il numero delle macchine esistono fully polinomial scheme. Una variante del LS è m +1/(2 m) approssimante. Mentre un algoritmo di Potts basato sulla programmazione lineare è 2- approssimante. Il problema P/pmtn /C max è risolto dall algoritmo wrap-around di McNaughton, che parte dalla osservazione che C max =max{max j p j,(σ j p j )/m} (estendibile opportunamente al caso macchine uniformi), si riempiono quindi le macchine successivamente fino a soddisfare tale valore, spezzando tra una macchina e la successiva i job che eventualmente lo viola. In questo caso vi sono al massimo (m-1) preemption. È NP-hard determinare uno scheduling ottimo che minimizzi il numero di preemption

6 Esempio Problema P 3/ pmtn / C max (McNaughton) Job p i (mac.) j 1 6 (A) j 2 3 (A) j 3 7 (B,A) j 4 3 (B) j 5 8 (B,C) j 6 9 (C) j 7 1 (C) j 8 2 (C) j 1 j 3(parte 1) j 4 j 5(parte 2) j 5(parte 1) j 6 j 2 j 3(parte 2) 0 13 j 8 j 7 Esempio Problema P 3/ pmtn / C max (McNaughton) Job p i (mac.) j 1 18 (A) j 2 3 (B) j 1 j 3 7 (B) j 4 3 (B) j 2 j 3 j 4 J 5(parte 2) j 5 8 (B,C) j 5(parte 1) j 6 j 8 j 7 j 6 9 (C) j 7 1 (C) 0 18 j 8 2 (C) Q/pmtn /C max R/pmtn /C max P/pmtn,r i,d i /C max Il problema Q/pmtn/C max può essere risolto in O(mn 2 ) con una variazione di LPT che assegna il job con il massimo largest remaining processing time al processore più veloce disponibile. Esistono anche algoritmi più efficienti che supponendo le macchine e i job già ordinati sono O(n). Nel caso R/pmtn/C max il valore di C max si può trovare attraverso programmazione lineare, la soluzione può essere costruita in un tempo polinomiale utilizzando un algoritmo per Q/pmtn/C max. per il problema P/pmtn,r i,d i /C max l esistenza di uno scheduling ammissibile può essere verificato con modelli di network flow O(n 3 ). I problemi si risolvono quindi polinomialmente facendo bisezione su C max ; i risultati si generalizzano a L max ; generalizzazioni polinomiali si hanno anche per R/pmtn,r i /C max

7 P/prec,p i =1/C max Il problema P/prec,p i =1/C max è NP-hard, e non può essere trovata un approssimazione polinomiale con c < 4/3; P 2/prec,p i =1/C max è polinomiale, non è noto per un altro numero di macchine fissato; P/tree,p i =1/C max è polinomiale si applica l algoritmo di Hu del Critical Path (CP). In ogni slot temporale deve essere schedulato il job da cui dipende la più lunga catena di job non eseguiti; P/intree,p i =1/L max è polinomiale si applica l algoritmo CP; P/outtree,p i =1/L max è NP-hard; altri casi P prec,p=1 C max polinomiali si possono avere per grafi di precedenza particolari. 25 P 2/prec,p i =1/C max Il problema P 2/prec,p i =1/C max è polinomiale con l algoritmo di Coffman e Graham (CG) O(n 3 ) CG funziona assegnando il label k+1, essendo già assegnate k etichette, a quel job che ha gli immediati successori già etichettati e tali che le etichette dei sui immediati successori siano lessicograficamente minime. Gabow definisce un algoritmo O(n 2 ) che usa le operazioni cosiddette di union-find. 26 P/prec, p i =1/Σ i C i P/prec/C max Il problema P/prec, p i =1/Σ i C i è NP-hard, P/outtree, p i =1/Σ i C i è polinomiale con CP; in generale, anche in questi casi non si possono dare approssimazioni con c<4/3: CP è 4/3 approssimante per m=2, e 2-1/(m-1) per m>2, CG è 2-1/m approssimante, MS che assegna il job con maggior numero di successori è 4/3 approssimante per m=2. Il problema P/prec/C max è 2-1/m approssimato da LS e da CP. Poco meglio si riesce a fare con algoritmi ad hoc su grafi di precedenza particolari

8 P/prec/C max e LS paradossi Attenzione: il LS, che di solito esprime una priorità tra i job, può avere comportamenti a paradossali. Esempio: P 2/prec/C max j 1 : p 1 =3 j 2 : p 2 =4 j 3 : p 3 =2 Dato un problema P/prec/C max (ma anche in altre situazioni e per altre misure), il makespan può aumentare anche se: si aumenta il numero delle macchine si diminuisce il tempo di esecuzione delle operazioni si eliminano alcune precedenze si cambia la priorità tra i task. j 7 : p 7 =13 j 8 : p 8 =2 j 4 : p 4 =4 LS = {j 1, j 2, j 3, j 4, j 5, j 6, j 7, j 8 } j 5 : p 5 =4 j 6 : p 6 = Esempio: P 2/prec/C max Esempio: P 2/prec/C max j 1 j 3 j 4 j 6 j 8 j 1 j 3 j 4 j 5 j 6 j 8 j 2 j 7 schedule ottimo C max =17 j 2 j 5 j 7 tempi di esecuzione diminuiti di un unità, C max =18 j 1 j 5 j 1 j 3 j 4 j 6 j 2 j 6 j 7 j 2 j 8 j 5 j 7 cambio di LS, nuovo LS = {j 1, j 2, j 3, j 4, j 5, j 6, j 8, j 7 }, C max =23 j 3 j 4 j 8 una macchina in più, C max =

9 Esempio: P 2/prec/C max P/pmtn, prec/c max j 1 : p 1 =3 j 2 : p 2 =4 j 3 : p 1 =2 j 7 : p 7 =13 j 1 j 8 : p 8 =2 j 3 j 5 j 4 : p 4 =4 j 7 j 5 : p 5 =4 j 6 : p 6 =2 Il problema P/pmtn, prec/c max è NP-hard, P 2/pmtn, prec/c max e P/pmtn, tree/c max sono polinomiali tramite l algoritmo di Muntz e Coffman. In generale tale algoritmo garantisce una 2-1/m approssimazione, e nel caso Q/pmtn, prec/c max una (3m/2)- approssimazione. j 2 j 4 j 6 j 8 meno precedenze, C max = Stochastic machine scheduling P/p i ~exp(λ i )/EC max è minimizzato da Longest Expected Processing Time (LEPT); Q/pmtn,p i ~exp(λ i )/EC max è minimizzato da preempted LEPT; P/p i ~exp(λ i )/EΣ i C i è minimizzato da SEPT; Q/pmtn,p i ~exp(λ i )/EΣ i C i è minimizzato da preempted SEPT. Nel caso di scheduling stocastico algoritmi che sono solo euristici nel caso deterministico diventano ottimi quando la probabilità dei casi peggiori tende a zero. In generale le politiche ottime sono dinamiche e si basano sulla storia realizzata fino all istante corrente. Modelli multi-operation Job composti da più task da schedulare su più macchine; Solo pochissimi casi di modelli multi-operation sono polinomiali, i più noti sono: F2//C max, O2//C max, O/pmtn/C max

10 Open shop O2//C max è polinomiale O(n), Gonzalez e Sahni costruiscono uno schedule che coincide con il lower bound max{σ j p 1j,Σ j p 2j,max j (p 1j +p 2j )}, imponendo che non ci siano idle time dall inizio della prima operazione al termine dell ultima su ognuna delle due macchine; O2/r j /C max, e O2//L max sono NP-hard in senso forte; O3//C max NP-hard in senso normale. Open shop O/pmtn/L max è polinomiale, (Lenstra et al. in O(n)), questo implica... O/pmtn/C max è polinomiale; Gonzalez e Sahni provano che C max coincide con il bound max{maxσ i p ij,maxσ j p ij }; O/pmtn, r i /L max, l ammissibilità può essere verificata tramite programmazione lineare e quindi il valore ottimo può essere cercato per bisezione; O2/pmtn/Σ i C i è aperto tutti gli altri problemi sono NP-hard Flow shop F2//C max è polinomiale. L algoritmo di Johnson lo risolve in O(nlogn) sequenziando prima i job con p 1j p 2j per p 1j crescenti quindi i rimanenti job per p 2j decrescenti. Si ottiene un permutation schedule (ogni macchina processa i job nello stesso ordine), basta un interchanging argument per provare che almeno un permutation schedule ottimo esiste; F2//L max, F2/r i /C max,sono NP-hard nel senso forte; per F2/r i /C max un algoritmo approssimato che applica una variante la regola di Johnson è 5/3-approssimato. 39 Problema F 2/ / C max (Johnson) T 5A T 1A T 5B T 4A Esempio Job p ia p ib j j j j j T 3A T 2A T 1B T 4B T 3B T 2B 40

11 Flow shop F3//C max è NP-hard in senso forte, diventa polinomiale sotto varie ipotesi di rapporti particolari tra i processing times, oppure se la macchina intermedia è non bottleneck, cioè può processare più job contemporaneamente. Fm//C max, per m 4, viene affrontato con qualche successo anche dalla simulated annealing (dove si intendono adiacenti permutazioni che coincidono tranne per la posizione di un job), euristiche basate su Johnson sono m/2 -approsimanti. Flow shop Fm//C max, per m 4, non necessariamente ammette soluzioni ottime che siano permutation schedule anche se esiste una soluzione ottima che ha una stessa sequenziazione su M 1 e M 2 e una su M m-1 e M m. Se ci si limita lo stesso a cercare solo permutation schedule i migliori bound si ottengono considerando tutte le macchine u, v (u v), tranne due, di infinita capacità (possono processare più job assieme). C max ={min j Σ i=1,u-1 p ij +contributo_macchine_da_u_a_v+min j Σ i=v+1,m p ij }, se u=v, contributo_macchine_da_u_a_v = Σ j p uj, se v=u+1 si risolve con Johnson, altrimenti si considerano le macchine intermedie tra u e v come un unica macchina non bottleneck Flow shop no-wait Job shop Un flow-shop è no-wait se ogni job, una volta iniziato, deve essere processato senza soluzione di continuità. F/no-wait/C max può essere formulato come un TSP n+1 città 0,1,...,n con distanze c jk =max 1 i m {Σ h=1,i p hj - Σ h=1,i-1 p hk } con p i0 =0. F2/no-wait/C max è un TSP particolare risolvibile in O(n 2 ), tutte le altre variazioni sono NP-hard (anche F2/no-wait/Σ i C i, F2/no-wait/L max O2/no-wait/C max J2/no-wait/C max etc..). Una gestione no wait può allungare considerevolmente lo scheduling fino a, ma escluso, m volte. 43 Ogni istanza di J//C max può venire rappresentata attraverso un grafo disgiuntivo*, dove ad ogni insieme di operazioni sulla stessa macchina corrisponde una clique. Ogni soluzione ammissibile corrisponde a rendere il grafo orientato e senza circuiti scegliendo un orientamento per gli archi disgiuntivi. * Un grafo disgiuntivo G=(N,C D) ha un nodo in N per ogni task, un arco orientato (congiuntivo) in C per ogni relazione di precedenza tra due task, un arco non orientato (disgiuntivo) in D per ogni coppia di task in competizione per la stessa macchina. 44

12 Job shop J2/m 2/C max può essere risolto con una modifica dell algoritmo di Johnson. Su M 1 si sequenziano i job secondo la regola (J 12,J 1,J 21 ), dove il pedice degli insiemi indicano l ordine delle macchine su cui devono essere eseguiti, J 12, J 21 ordinati secondo Johnson, su M 2 si sequenzia secondo (J 21,J 2,J 12 ); J2/p ij =1/C max (L max ) è polinomiale; J//C max polinomiale se si considerano solo due job con precedenze complete. Ci si riconduce alla ricerca di un percorso minimo; J2/pmtn/Σ i C i e gli altri job shop sono in generale NP-hard in senso forte. Job shop Il problema del job-shop è in genere risolto tramite B&B facendo il branching sulla direzione degli archi non orientati del grafo disgiuntivo. I bound che vengono calcolati generalmente con rilassamento surrogato (sulla capacità delle macchine o i vincoli di precedenza). Sliding/shifting bottleneck machine e simulated annealing sono le euristiche più usate (scheduling adiacenti sono quelli che scambiano due job sul maximum weight path) Resource constrained project scheduling P2/p j =1/C max, con risorse con disponibilità costante R h, t.c. ogni job ne abbisogni di r jh è polinomiale. Il problema si trasforma in maximum cardinality matching. Si costruisce un grafo che ha per vertici i job e presenta archi che uniscono le coppie di job che possono essere eseguite contemporaneamente. In generale i problemi sono NP-hard, anche perché la disponibilità e la richiesta di risorse possono variare nel tempo o per l uso. 47 Problemi reali La realtà è spesso molto più complessa di quella ipotizzata nei semplici modelli considerati. Si incontrano quasi sempre dei job shop, in cui i task di uno stesso job posson dovere essere eseguiti in momenti diversi sulla stessa macchina, in cui sono inoltre spesso presenti: stocasticità; dinamicità; disturbi; congestione; ambiguità negli obiettivi e nei vincoli;... 48

13 Obiettivi Euristiche Nella maggiore parte dei casi reali è difficile definire esattamente in modo formale l obiettivo perseguito. I problemi reali sono spesso NP-hard e vengono risolti tramite euristiche. In genere si vuole comunque ridurre flow time medio wip medio* tardiness media e massima (in presenza di due date) * il metodo dei kanban pone dei limiti per il wip massimo in presenza di produzioni molto regolari 49 I modelli semplificati visti in precedenza servono comunque a: suggerire dei modelli di comportamento su cui basare le euristiche; valutare le prestazioni delle euristiche in situazioni in cui è possibile calcolare i valori ottimi. 50 Approcci generali Approcci generali Regola di buon senso: quando si affronta un problema complesso conviene cercare di decomporlo e concentrare l attenzione solo su quegli aspetti in cui vi sia probabilità di maggiore miglioramento delle prestazioni per unità di sforzo impiegato. In problemi di scheduling quanto affermato si traduce nel cercare di schedulare al meglio le macchine collo di bottiglia (le macchine con throughput minimo, lungo le loro linee di produzione, che determinano la prestazione della linea) e le attività critiche (task il cui ritardo nell esecuzione si traduce in un ritardo complessivo nel completamento del job di appartenenza). Purtroppo sia le macchine collo di bottiglia che le attività critiche sono spesso dipendenti dai job e tempo varianti

14 Approcci generali Approcci generali Per i colli di bottiglia si propongono approcci generali in cui si individua un collo di bottiglia alla volta e si cerca di schedularlo al meglio (e.g., sliding/shifting bottleneck, OPT), oppure in cui si cerca di schedulare le altre macchine in modo che le le macchine collo di bottiglia non rimangano mai idle (starvation avoidance). Le euristiche orientate alla riduzione del flow time medio tendono ad eseguire i task più veloci e a fare uscire dal sistema i job che siano più avanti nelle lavorazioni. Le euristiche orientate al rispetto delle due date tendono ad eseguire i task in un qualche senso più urgenti. Per l identificazione delle attività critiche si utilizzano metodologie PERT-CPM. In seguito vengono presentate le euristiche generali che hanno di solito le migliori prestazioni. Euristiche più complesse in genere non presentano risultati apprezzabilmente diversi Notazione Z: indice minimizzato, t: tempo corrente, d i : due date job i, p ij : tempo (atteso) di esecuzione del task del job i sulla macchina j, n i : numero di task ancora da eseguire per il job i al tempo t, w ij : tempo di attesa che un task del job i si supponga (date le informazioni all istante t) debba spendere prima di essere eseguito sulla macchina j, sl i : slack sl i = d i -( t + Σ j S(i) p ij ) S(i): macchine su cui devono essere ancora eseguiti i task del job i al tempo t. Euristiche relative al flow time SI: Shortest Imminent Operation, Z = p ij SR: Shortest Remaining Processing Time, il primo task del job per cui è minimo Z = Σ j S(i) p ij Possibili correzioni SI troncata FCFS: quando l attesa di un task eccede una data soglia, viene posto su una coda prioritaria gestita FCFS. SI*: i task dei job con sl i - Σ j S(i) w ij <0 vengono posti su una coda prioritaria, anche essa gestita SI; SPT-T: il primo task del job per cui è minimo Z = min{p ij + r, sl i /n i }, dove r parametro fissato

15 Euristiche relative alla tardiness EDD: Earliest Due Date, Z = d i, Slack: slack minimo, Z = sl i, Slack/OPN:slack per operation, Z = sl i /n i, Critical Ratio: Z = Σ j S(i) p ij /(d i -t) Per due date stringenti (meno di circa sei volte il tempo di esecuzione complessivo dei job) o sistemi congestionati >90% della capacità disponibile le politiche SI o SI corrette hanno buone prestazioni, se non migliori delle regole specifiche, anche per la tardiness (questo poiché i job tendono comunque ad essere in ritardo). Appendice Matematica Euristiche ed Approssimazioni 17/12/ Soluzioni approssimate e algoritmi euristici Trovare la soluzione ottima di problemi di ottimizzazione NPhard può risultare in pratica troppo oneroso, inoltre dato che i parametri del modello considerato possono essere affetti da errori tale sforzo potrebbe essere anche poco rilevante. Nei casi pratici possono essere anche accettate delle soluzioni buone che, sperabilmente, non siano lontane dall ottimo. Algoritmo euristico: algoritmo che risolve un problema di ottimizzazione, utilizzando in genere regole di buon senso, e fornisce una soluzione ammissibile ma non necessariamente ottima. Errori Quando è possibile (non sempre lo è) è opportuno dare una stima per eccesso dell errore compiuto accettando la soluzione di un algoritmo euristico rispetto a quella ottima Errori: dato un problema (F,c; max), detti z opt = {max c(x) : x F} il valore della soluzione ottima e z A il valore fornito dall algoritmo euristico A si definiscono errore assoluto: E A = z opt -z A errore relativo: R A = (z opt -z A )/z opt 59 60

16 Algoritmi approssimati Algoritmo ε-approssimato: algoritmo che garantisce un errore relativo non maggiore di ε > 0: R a ε Schema di approssimazione: algoritmo che garantisce R a ε per qualunque ε > 0 schema di approssimazione polinomiale: schema di approssimazione con complessità polinomiale nelle dimensioni dell istanza schema di approssimazione pienamente polinomiale: schema di approssimazione con complessità polinomiale nelle dimensioni dell istanza e in 1/ε Algoritmi approssimati Commenti: Quando esistono conviene applicare algoritmi approssimati, per i quali è calcolabile, per definizione, un limite massimo dell errore compiuto, rispetto a degli algoritmi euristici basati sul buonsenso, ma per cui non si può fornire un limite massimo dell errore. Per alcuni problemi non sono noti algoritmi approssimati, per altri il migliore algoritmo approssimato ha valori di ε grandi (maggiori di 0.5). Inoltre algoritmi euristici con accettabili prestazioni medie vengono a volte preferiti ad algoritmi approssimati (almeno in prima battuta) perché sono più facili da implementare e generalmente più veloci Tipi di euristiche Tipi di euristiche Euristiche costruttive costruiscono una soluzione del problema Euristiche di miglioramento iterativamente a partire da una soluzione del problema cercano di determinarne una migliore nell intorno di quella data Commenti: in genere le soluzioni fornite dalle euristiche costruttive e quelle utilizzate dalle euristiche di miglioramento sono soluzioni ammissibili. Per certi problemi risulta anche estremamente complesso determinare una prima soluzione ammissibile, allora può convenire rilassare lagrangianamente alcuni vincoli, i.e., determinare una prima soluzione che soddisfi almeno parte dei vincoli e penalizzare il fatto che altri vincoli non siano rispettati. Quindi iterativamente a partire dalla soluzione (non ammissibile ottenuta) cercano di determinarne una che rispetti maggiormente i vincoli nell intorno di quella data 63 64

17 Metaeuristiche Affinché una euristica sia efficace deve sfruttare le caratteristiche strutturali del problema che deve risolvere, per questo motivo non esiste una euristica generale. Esistono però degli approcci generali a cui si può fare riferimento per sviluppare euristiche specifiche. Tali approcci vengono detti metaeuristiche. Esempi: metaeuristica costruttiva: greedy metaeuristica migliorativa: ricerca locale simulated annealing tabusearch 65 Metaeuristica greedy 1. inizializzazione: Metaeuristica greedy Si ordinano gli elementi e 1, e 2,..., e m che concorrono a comporre una soluzione in modo non decrescente(c 1 c 2... c m ) rispetto ai loro costi (oppure in modo non crescente rispetto ai profitti o comunque in modo monotono rispetto ad una funzione euristica di valutazione). Si pone F 0 =, //insieme degli elementi che compongono la soluzione 66 Metaeuristica greedy 2. iterazione: while non si è costruita completamente una soluzione { si sceglie e k, if F k-1 {e k } non viola i vincoli dati F k =F k-1 {e k }, else F k =F k-1 } return /F k è l insieme degli elementi che costituiscono la soluzione Euristiche greedy Esempi: problema dello zaino KP(U,s,c,B, max): si ordinano gli oggetti per densità decrescente c(u)/s(u) e a partire dal primo si prova ad inserire gli oggetti nello zaino lasciando in esso quelli che vi possono essere contenuti, e.g., max z RL = 12x x x x x 5 3x x x 3 + 6x x 5 23 x i {0,1} (oggetti già ordinati) soluzione greedy x= [1,1,0,1,0] 67 68

18 Euristiche greedy Esempi (cont.): problema del commesso viaggiatore TSP(G(V,E), c,s,min): euristica detta del nodo più prossimo (nearest neighbor), si parte da un nodo qualunque ed ad ogni passo si va al nodo più vicino non ancora visitato. Esempio (supponendo distanze euclidee): Commenti: non funziona molto bene: i primi archi sono brevi, gli ultimi molto lunghi nodo iniziale però gli archi molto lunghi sono pochi: può essere una buona base da migliorare semplice da implementare soluzioni mediamente del 25% superiori al minimo effettivo troppo lento per più di nodi Euristiche greedy Esempi (cont.): Problema di scheduling 1/r i /ΣC i (U,p,r, min): si eseguono immediatamente le operazioni disponibili, se più operazioni sono disponibili si sceglie secondo shortest processing time first. Esempio con tre operazioni: J 1 : r i = 0, p i =10 J 2 : r 2 = 1, p 2 =1 ΣC i = =34 J 3 : r 3 = 4, p i =2 J 1 J 2 J Metaeuristica ricerca locale Metaeuristica RicercaLocale 1. inizializzazione: si genera una soluzione iniziale ammissibile x 0 2. iterazione: do { x k+1 = f(x k ) //dove f(x k ) è una funzione che, //data una soluzione ammissibile, //ne genera una nuova ammissibile non peggiore } while x k+1 x k //esce dal loop quando la condizione è falsa return //x k+1 è un ottimo locale 71 Metauristica ricerca locale Commenti: in generale si determina solo un ottimo locale, se, come spesso avviene nei problemi combinatori, vi sono molti ottimi locali, applicando semplicemente una ricerca locale è molto probabile che venga determinato un ottimo locale lontano dall ottimo globale la funzione f(x k ) deve determinare la soluzione successiva rapidamente, quindi in genere si limita a valutare le soluzioni ammissibili appartenenti all intorno della soluzione corrente x k un intorno di x è una funzione che dato x restituisce un insieme di soluzioni ammissibili I(x) t.c. x I(x) i.e., x appartiene al suo intorno x, y S, {x 0,..., x r } t.c. x= x 0, y= x r, e x s I(x s-1 ) s=1,...,r i.e., è possibile andare da x a y passando per punti che appartengono uno all intorno dell altro. 72

19 Ricerca locale Esempi: problema del commesso viaggiatore TSP(G(V,E), c,s,min): euristica detta 2 opt. Concetto base: ad ogni passo si eliminano due rami, si ricongiungono i due semicircuiti. Circuito iniziale Semicircuiti 2-opt archi da rimuovere Algoritmo 2-opt: si parte da un circuito hamiltoniano, si eseguono tutti gli scambi 2 opt (fra tutte le coppie di rami del circuito) che riducono la lunghezza. Efficacia: 8% più del minimo in media 73 notare l inversione del verso di percorrenza di un semicircuito Circuito passo 1 nuovi archi 74 archi da rimuovere archi da rimuovere Circuito passo 1 Circuito passo 2 nuovi archi Circuito passo 2 nuovi archi Circuito passo 3 ecc

20 Ricerca locale Esempi (cont.): problema del commesso viaggiatore TSP(G(V,E), c,s,min): euristica detta 3 opt. Concetto base: ad ogni passo si eliminano tre rami, si ricongiungono i tre semicircuiti.efficacia: 4% più del minimo in media. archi da rimuovere Si generalizza a k-opt. Circuito iniziale Nuovo circuito Ricerca locale Esempi (cont.): Problema di scheduling 1/r i /ΣC i (U,p,r, min): ad ogni passo si scambiano di posto due operazioni (anche non necessariamente adiacenti) Scheduling iniziale J 1 J 2 J Scheduling dopo scambio J 1 con J 2 J J 1 J 3 14 ΣC i = =34 ΣC i = = Altre strategie di esplorazione dell intorno Utilizzando una funzione f(x k ) che determina una soluzione successiva non peggiore (o addirittura che determina la soluzione successiva ottima tra quelle appartenenti all intorno) in generale si rimane intrappolati in un ottimo locale. Può allora convenire usare una funzione g(x k ) che a volte determina una soluzione successiva peggiore della precedente nella speranza di saltare fuori dall ottimo locale. Su questa filosofia si basano, ad esempio, due metaeuristiche di ricerca locale: simulated annealing tabusearch 79 Simulated annealing La simulated annealing è un algoritmo per la soluzione di problemi combinatori NP-hard basato sulla metafora della tempratura dei metalli: si raggiunge uno stato di minima energia non troppo velocemente in modo da evitare che si raggiunga uno stato finale. La simulated annealing è una metaeuristica di ricerca locale che permette passi in cui avvengono dei peggioramenti con probabilità che decrsce nel tempo. Il tasso di decremento è definito dal cooling schedule; molto spesso consiste semplicemente nel fissare un parametro caratterizzante in un decadimento esponenziale. Se valgono alcune (deboli) ipotesi sul cooling schedule si può dimostrare che l algoritmo converge all ottimo in probabilità (ma in tempi esponenziali). 80

21 Simulated annealing Metaeuristica SimulatedAnnealing(a: parametro di raffreddamento) 1. inizializzazione: si genera una soluzione iniziale ammissibile x 0 81 Simulated annealing 2. iterazione: do {cambiamento = FALSE for (i = 0,( i < N) && (cambiamento = FALSE), i++) { y =g(x k ) = cy - cx k //valutazione della soluzione y generata if ( <0) {x k+1 = y; cambiamento = TRUE} else (con probabilità exp(- /t)) { x k+1 = y; cambiamento = TRUE} } t = at } while cambiamento //esce dal loop quando la condizione è falsa return //viene restituita la migliore soluzione x k ottenuta 82 Simulated annealing Commenti: Sia la simulated annealing che la tabu search appaiono promettenti per la risoluzione euristica di problemi difficili quali quelli di scheduling le cui istanze reali attualmente appaiono di dimensione troppo grande per essere affrontate con gli algoritmi esatti disponibili. Tabù search Tabu search: la tabu search è una metaeuristica di ricerca locale che permette passi in cui avvengono dei peggioramenti con criteri deterministici. Si definiscono dei criteri di accettazione della soluzione generata a soglia basati non necessariamente solo sul valore della funzione obiettivo. Poiché si accettano anche soluzioni che inducono peggioramenti della funzione obiettivo, per evitare di ritornare su soluzioni già visitate, ad ogni passo viene aggiornata una lista di operazioni vietate (tabù) che riporterebbero su soluzioni già visitate

22 Tabù search Metaeuristica TabuSearch 1. inizializzazione: si genera una soluzione iniziale ammissibile x 0, si pone TabuList = nil, k = 0; 2. iterazione: do { [y 1, y 2,..., y n ] =g(x k ) //genera un insieme di nuove soluzioni alternative y = h((y 1, y 2,..., y n ), TabuList, x k ) //seleziona la migliore alternativa se esiste if (y = nil) {cambiamento = FALSE} else { x k+1 = y; cambiamento = TRUE, aggiorna(tabulist) } k= k+1 } while (cambiamento and k < M) //rimane nel loop se si è verificato un cambiamento di //soluzione e se non si è superato un limite massimo di mosse return //viene restituita la migliore soluzione x k ottenuta Tabù search function h((y 1, y 2,..., y n ), TabuList, x k ) 1. inizializzazione: z* =, i* = 0, y 0 = nil; 2. iterazione: for (i = 1; i <= n; i++) { if ((y i not in TabuList) or (f(y i ) == TRUE) //valuta se y i non è tabù o soddisfa delle aspirazioni if (cy i < z*) {z* = cy i, i* = i} //valuta se y i è migliore della soluzione y i* corrente } return (y i* ) //viene restituita la migliore soluzione y i* ottenuta Tabù search Commenti: Sono ovviamente critiche per algoritmi tabù search la definizione delle funzioni: g(x k ) che determina un insieme di nuove soluzioni nell intorno di x k, nei metodi più semplici tale insieme è generato in modo casuale, nei metodi più complessi tenendo conto delle statistiche delle soluzioni già visitate e delle caratteristiche strutturali del problema; h((y 1, y 2,..., y n ), TabuList, x k ) che ad ogni iterazione deve determinare la nuova migliore soluzione; f(y) che descrive i criteri di aspirazione ovvero l insieme di quelle condizioni che permettono di violare i tabù; nello pseudocodice presentato per semplicità concettuale le funzioni g(.) e h(.) sono presentate separatamente ma in molti algoritmi sono fuse assieme; la tabù search viene applicata con discreto successo anche quando alcuni dei vincoli del problema originale vengono rilassati lagrangianamente. In questo caso i criteri di aspirazione possono prevedere la soddisfazione dei vincoli. 87 Tabù search Commenti (continuazione): la TabuList ha una lunghezza massima prefissata (o anche definibile dinamicamente), una volta raggiunto il limite massimo di mosse tabù (in generale non più di una decina) un nuovo tabù può essere immesso nella lista solo dopo averne eliminato uno già presente; gli algoritmi più avanzati tengono contemporaneamente conto di più TabuList contemporaneamente. Possono convivere liste che descrivono una memoria a breve termine e liste che descrivono una memoria a lungo termine (che cioè impediscono la generazione di determinate soluzioni per un più lungo periodo). La memoria a breve termine favorisce una ricerca intensiva di un intorno di soluzioni, la memoria a lungo termine la diversificazione delle soluzioni generate, in questo caso le TabuList possono essere usate anche dalla funzione g(x k ). Possono anche convivere liste che tengono conto di aspetti diversi del problema (e.g., in un problema di scheduling l assegnazione e la sequenziazione delle operazioni); definire i criteri di aggiornamento delle TabuList è un altro degli aspetti critici delle euristiche tabù search. 88

23 Tabù search Esempio*: Problema - minimo albero ricoprente con vincoli aggiuntivi (side constraints): data la rete in figura determinare l albero ricoprente minimo che soddisfi le seguenti condizioni aggiuntive: solo uno tra gli archi a, b, f può essere presente l arco a può essere presente solo se è presente anche l arco c a 6 b 9 c 18 d 2 e 0 f 8 g 12 *tratto dal lavoro di Glover (vedi bibliografia) Approccio basato su tabù search la scelta dell intorno è basata su scambio di archi il tabù impedisce di scambiare gli ultimi due archi inseriti il criterio di aspirazione permette di violare il tabù se si ottiene una soluzione migliore di quella correntemente ottima i vincoli possono essere violati pagando una penalità di 50 per ogni violazione 89 a 6 b 9 c 18 d 2 e 0 f 8 g 12 a 6 b 9 c 18 d 2 e 0 f 8 g 12 Tabù search archi dell albero arco escluso dall albero tramite scambio archi tabù dell albero passo 0: soluzione generata con algoritmo di Prim trascurando i vincoli. Soluzione correntemente ottima, ma non ammissibile z = 116 passo 1: scambio di a con c. Ottimo locale. Soluzione correntemente ottima, z = Tabù search a 6 b 9 c 18 d 2 e 0 f 8 g 12 passo 2: scambio di f con g. Scambio che induce un peggioramento, inevitabile data l ottimalità della soluzione al passo precedente, z = 32 a 6 b 9 c 18 d 2 e 0 f 8 g 12 passo 3: scambio di c con b. Scambio che viola un tabù, ma che viene effettuato in quanto induce una soluzione migliore di quella correntemente ottima. Nuova soluzione correntemente ottima, z = 23. La soluzione corrente è l ottimo assoluto. 91

Ottimizzazione Multi Obiettivo

Ottimizzazione Multi Obiettivo Ottimizzazione Multi Obiettivo 1 Ottimizzazione Multi Obiettivo I problemi affrontati fino ad ora erano caratterizzati da una unica (e ben definita) funzione obiettivo. I problemi di ottimizzazione reali

Dettagli

1. Considerazioni generali

1. Considerazioni generali 1. Considerazioni generali Modelli di shop scheduling In molti ambienti produttivi l esecuzione di un job richiede l esecuzione non simultanea di un certo numero di operazioni su macchine dedicate. Ogni

Dettagli

CPM - PERT CPM - PERT. Rappresentazione di un progetto. Gestione di un progetto. Critical Path Method Project Evaluation and Review Technique

CPM - PERT CPM - PERT. Rappresentazione di un progetto. Gestione di un progetto. Critical Path Method Project Evaluation and Review Technique CPM - PERT CPM - PERT CPM e PERT sono metodologie per la gestione di progetti composti da più attività in cui esistano relazioni di precedenza. Critical Path Method Project Evaluation and Review Technique

Dettagli

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza Il problema di flusso di costo minimo (MCF) Dati : grafo orientato G = ( N, A ) i N, deficit del nodo i : b i (i, j) A u ij, capacità superiore (max quantità di flusso che può transitare) c ij, costo di

Dettagli

Ricerca Operativa A.A. 2007/2008

Ricerca Operativa A.A. 2007/2008 Ricerca Operativa A.A. 2007/2008 9. Cenni su euristiche e metaeuristiche per ottimizzazione combinatoria Motivazioni L applicazione di metodi esatti non è sempre possibile a causa della complessità del

Dettagli

Bibliografia. Gestione operativa della produzione. Terminologia. Schedulazione. Schedulazione operativa della produzione

Bibliografia. Gestione operativa della produzione. Terminologia. Schedulazione. Schedulazione operativa della produzione Bibliografia Gestione operativa della produzione Schedulazione operativa della produzione 14/12/2001 11.54 E.L. Lawler, J.K. Lenstra, A.G.H. Rinnoy Kan, D.B. Shmoys, Sequencing and Scheduling: Algorithms

Dettagli

Seconda Prova di Ricerca Operativa. Cognome Nome Numero Matricola A 1/12 A 2/12

Seconda Prova di Ricerca Operativa. Cognome Nome Numero Matricola A 1/12 A 2/12 A / A / Seconda Prova di Ricerca Operativa Cognome Nome Numero Matricola Nota: LA RISOLUZIONE CORRETTA DEGLI ESERCIZI CONTRADDISTINTI DA UN ASTERISCO È CONDIZIONE NECESSARIA PER IL RAGGIUNGIMENTO DELLA

Dettagli

Il Metodo Branch and Bound

Il Metodo Branch and Bound Il Laura Galli Dipartimento di Informatica Largo B. Pontecorvo 3, 56127 Pisa laura.galli@unipi.it http://www.di.unipi.it/~galli 4 Novembre 2014 Ricerca Operativa 2 Laurea Magistrale in Ingegneria Gestionale

Dettagli

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling SCHEDULING DELLA CPU 5.1 Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling Real-Time

Dettagli

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1 SCHEDULING DELLA CPU 5.1 Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling Real-Time

Dettagli

Approcci esatti per il job shop

Approcci esatti per il job shop Approcci esatti per il job shop Riferimenti lezione: Carlier, J. (1982) The one-machine sequencing problem, European Journal of Operational Research, Vol. 11, No. 1, pp. 42-47 Carlier, J. & Pinson, E.

Dettagli

PROVA FINALE V. AULETTA G. PERSIANO ALGORITMI II - -MAGIS INFO

PROVA FINALE V. AULETTA G. PERSIANO ALGORITMI II - -MAGIS INFO PROVA FINALE V. AULETTA G. PERSIANO ALGORITMI II - -MAGIS INFO 1. Load Balancing Un istanza del problema del load balancing consiste di una sequenza p 1,..., p n di interi positivi (pesi dei job) e un

Dettagli

Esercizi di Ricerca Operativa I

Esercizi di Ricerca Operativa I Esercizi di Ricerca Operativa I Dario Bauso, Raffaele Pesenti May 10, 2006 Domande Programmazione lineare intera 1. Gli algoritmi per la programmazione lineare continua possono essere usati per la soluzione

Dettagli

SCHEDULING SCHEDULING

SCHEDULING SCHEDULING Corso di Laurea Triennale in INGEGNERIA GESTIONALE Anno Accademico 2012/13 Prof. Davide GIGLIO 1 INDICE Esempio Introduttivo Generalità sui problemi di scheduling SINGLE MACHINE SPT (shortest processing

Dettagli

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Scopo: Stimare l onere computazionale per risolvere problemi di ottimizzazione e di altra natura

Dettagli

Principi di Schedulazione in tempo reale

Principi di Schedulazione in tempo reale Principi di Schedulazione in tempo reale 1 Task in tempo reale Un task t i è una sequenza di processi in tempo reale τ ik ciascuno caratterizzato da q un tempo d arrivo r ik (r=release time, oppure a=arrival

Dettagli

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

Dettagli

Algoritmi e strutture dati. Codici di Huffman

Algoritmi e strutture dati. Codici di Huffman Algoritmi e strutture dati Codici di Huffman Memorizzazione dei dati Quando un file viene memorizzato, esso va memorizzato in qualche formato binario Modo più semplice: memorizzare il codice ASCII per

Dettagli

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P 1 2 0 0 P 1 1 2 2 3 3 2 P 2 3 0 2 P 2 6 0 0 P 3 2 1 1 P 3 0 1 1 < P 1, >

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P 1 2 0 0 P 1 1 2 2 3 3 2 P 2 3 0 2 P 2 6 0 0 P 3 2 1 1 P 3 0 1 1 < P 1, > Algoritmo del banchiere Permette di gestire istanze multiple di una risorsa (a differenza dell algoritmo con grafo di allocazione risorse). Ciascun processo deve dichiarare a priori il massimo impiego

Dettagli

Ottimizzazione nella gestione dei progetti Capitolo 4: la gestione dei costi (Programmazione multimodale): formulazioni

Ottimizzazione nella gestione dei progetti Capitolo 4: la gestione dei costi (Programmazione multimodale): formulazioni Ottimizzazione nella gestione dei progetti Capitolo 4: la gestione dei costi (Programmazione multimodale): formulazioni CARLO MANNINO Università di Roma La Sapienza Dipartimento di Informatica e Sistemistica

Dettagli

Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova. Metodi per supportare le decisioni relative alla gestione di progetti

Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova. Metodi per supportare le decisioni relative alla gestione di progetti Project Management Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova Project Management 2 Metodi per supportare le decisioni relative alla gestione di progetti esempi sono progetti nell

Dettagli

Sequenziamento a minimo costo di commutazione in macchine o celle con costo lineare e posizione home (In generale il metodo di ottimizzazione

Sequenziamento a minimo costo di commutazione in macchine o celle con costo lineare e posizione home (In generale il metodo di ottimizzazione Sequenziamento a minimo costo di commutazione in macchine o celle con costo lineare e posizione home (In generale il metodo di ottimizzazione presentato in questo file trova la seq. a costo minimo per

Dettagli

TSP con eliminazione di sottocicli

TSP con eliminazione di sottocicli TSP con eliminazione di sottocicli Un commesso viaggiatore deve visitare 7 clienti in modo da minimizzare la distanza percorsa. Le distanze (in Km) tra ognuno dei clienti sono come segue: 7-8 9 7 9-8 79

Dettagli

Ottimizazione vincolata

Ottimizazione vincolata Ottimizazione vincolata Ricordiamo alcuni risultati provati nella scheda sulla Teoria di Dini per una funzione F : R N+M R M di classe C 1 con (x 0, y 0 ) F 1 (a), a = (a 1,, a M ), punto in cui vale l

Dettagli

Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo

Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo L. De Giovanni G. Zambelli 1 Problema del flusso a costo minimo Il problema del flusso a costo minimo é definito

Dettagli

Corso Sistemi Informativi Aziendali, Tecnologie dell Informazione applicate ai processi aziendali. Sistemi informativi aziendali

Corso Sistemi Informativi Aziendali, Tecnologie dell Informazione applicate ai processi aziendali. Sistemi informativi aziendali Corso Sistemi Informativi Aziendali,. Sistemi informativi aziendali di Simone Cavalli (simone.cavalli@unibg.it) Bergamo, Febbraio - Marzo 2009 Produzione (cenni) Pagina 2 Produzione La produzione, in termini

Dettagli

1. Classificazione delle risorse

1. Classificazione delle risorse 1. Classificazione delle risorse Classificazione delle risorse in base alla disponibilità. - Risorse rinnovabili Sono risorse utilizzate per l esecuzione di una attività per tutta la sua durata, ma sono

Dettagli

Esercizi di Gestione della Produzione Industriale. Tabella 1: tempi di lavorazione di un set di job.

Esercizi di Gestione della Produzione Industriale. Tabella 1: tempi di lavorazione di un set di job. Esercizio 1: schedulazione con il modello di Johnson...2 Soluzione dell esercizio 1 (schedulazione con il modello di Johnson)...2 Esercizio 2: schedulazione con il modello di Hodgson...3 Soluzione dell

Dettagli

TSP con eliminazione di sottocicli

TSP con eliminazione di sottocicli TSP con eliminazione di sottocicli Un commesso viaggiatore deve visitare 7 clienti in modo da minimizzare la distanza percorsa. Le distanze (in Km) tra ognuno dei clienti sono come segue: 3 5 7-8 9 57

Dettagli

APPLICAZIONI DELLA RICERCA OPERATIVA

APPLICAZIONI DELLA RICERCA OPERATIVA Università degli Studi della Calabria Laurea in Informatica A.A. 2004/2005 Appunti di supporto didattico al corso di APPLICAZIONI DELLA RICERCA OPERATIVA Indice 1 Introduzione alla teoria dello Scheduling

Dettagli

TECNICHE DI SIMULAZIONE

TECNICHE DI SIMULAZIONE TECNICHE DI SIMULAZIONE INTRODUZIONE Francesca Mazzia Dipartimento di Matematica Università di Bari a.a. 2004/2005 TECNICHE DI SIMULAZIONE p. 1 Introduzione alla simulazione Una simulazione è l imitazione

Dettagli

Sistemi Operativi SCHEDULING DELLA CPU

Sistemi Operativi SCHEDULING DELLA CPU Sistemi Operativi SCHEDULING DELLA CPU Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling

Dettagli

Parte 3: Gestione dei progetti, Shop scheduling

Parte 3: Gestione dei progetti, Shop scheduling Parte : Gestione dei progetti, Shop scheduling Rappresentazione reticolare di un progetto Insieme di attività {,...,n} p i durata (nota e deterministica dell attività i) relazione di precedenza fra attività:

Dettagli

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 PRESTAZIONI DEL CALCOLATORE Massimiliano Giacomin Due dimensioni Tempo di risposta (o tempo di esecuzione): il tempo totale impiegato per eseguire un task (include

Dettagli

Scheduling della CPU:

Scheduling della CPU: Coda dei processi pronti (ready( queue): Scheduling della CPU primo ultimo PCB i PCB j PCB k contiene i descrittori ( process control block, PCB) dei processi pronti. la strategia di gestione della ready

Dettagli

Organizzazione della produzione

Organizzazione della produzione Scheduling Organizzazione della produzione PROOTTO che cosa chi ORGNIZZZIONE PROCESSO come FLUSSO I PROUZIONE COORINMENTO PINIFICZIONE SCHEULING quando Pianificazione della produzione: schedulazione di

Dettagli

Ricerca Operativa e Logistica

Ricerca Operativa e Logistica Ricerca Operativa e Logistica Dott. F.Carrabs e Dott.ssa M.Gentili A.A. 2011/2012 Lezione 10: Variabili e vincoli logici Variabili logiche Spesso nei problemi reali che dobbiamo affrontare ci sono dei

Dettagli

Algoritmi e Strutture Dati II: Parte B Anno Accademico 2004-2005. Lezione 11

Algoritmi e Strutture Dati II: Parte B Anno Accademico 2004-2005. Lezione 11 Algoritmi e Strutture Dati II: Parte B Anno Accademico 2004-2005 Docente: Ugo Vaccaro Lezione 11 In questa lezione vedremo alcune applicazioni della tecnica greedy al progetto di algoritmi on-line. Vediamo

Dettagli

Fondamenti e didattica di Matematica Finanziaria

Fondamenti e didattica di Matematica Finanziaria Fondamenti e didattica di Matematica Finanziaria Silvana Stefani Piazza dell Ateneo Nuovo 1-20126 MILANO U6-368 silvana.stefani@unimib.it 1 Unità 9 Contenuti della lezione Operazioni finanziarie, criterio

Dettagli

Modelli di Programmazione Lineare e Programmazione Lineare Intera

Modelli di Programmazione Lineare e Programmazione Lineare Intera Modelli di Programmazione Lineare e Programmazione Lineare Intera 1 Azienda Dolciaria Un azienda di cioccolatini deve pianificare la produzione per i prossimi m mesi. In ogni mese l azienda ha a disposizione

Dettagli

Capitolo 4: Ottimizzazione non lineare non vincolata parte II. E. Amaldi DEIB, Politecnico di Milano

Capitolo 4: Ottimizzazione non lineare non vincolata parte II. E. Amaldi DEIB, Politecnico di Milano Capitolo 4: Ottimizzazione non lineare non vincolata parte II E. Amaldi DEIB, Politecnico di Milano 4.3 Algoritmi iterativi e convergenza Programma non lineare (PNL): min f(x) s.v. g i (x) 0 1 i m x S

Dettagli

Scheduling. Sistemi Operativi e Distribuiti A.A. 2004-2005 Bellettini - Maggiorini. Concetti di base

Scheduling. Sistemi Operativi e Distribuiti A.A. 2004-2005 Bellettini - Maggiorini. Concetti di base Scheduling Sistemi Operativi e Distribuiti A.A. 2-25 Bellettini - Maggiorini Concetti di base Il massimo utilizzo della CPU si ottiene mediante la multiprogrammazione Ogni processo si alterna su due fasi

Dettagli

Esempi di algoritmi. Lezione III

Esempi di algoritmi. Lezione III Esempi di algoritmi Lezione III Scopo della lezione Implementare da zero algoritmi di media complessità. Verificare la correttezza di un algoritmo eseguendolo a mano. Imparare a valutare le prestazioni

Dettagli

e-dva - eni-depth Velocity Analysis

e-dva - eni-depth Velocity Analysis Lo scopo dell Analisi di Velocità di Migrazione (MVA) è quello di ottenere un modello della velocità nel sottosuolo che abbia dei tempi di riflessione compatibili con quelli osservati nei dati. Ciò significa

Dettagli

Intelligenza Artificiale

Intelligenza Artificiale Intelligenza Artificiale Esercizi e Domande di Esame Tecniche di Ricerca e Pianificazione Esercizi Griglia Si consideri un ambiente costituito da una griglia n n in cui si muove un agente che può spostarsi

Dettagli

Il sistema monetario

Il sistema monetario Il sistema monetario Premessa: in un sistema economico senza moneta il commercio richiede la doppia coincidenza dei desideri. L esistenza del denaro rende più facili gli scambi. Moneta: insieme di tutti

Dettagli

CAPITOLO 6 La programmazione operativa (operations scheduling)

CAPITOLO 6 La programmazione operativa (operations scheduling) CAPITOLO 6 La programmazione operativa (operations scheduling) Contenuti Le funzioni della PO Gli obiettivi della PO Il job loading Il metodo dell assegnazione Il job sequencing Regole e tecniche di priorità

Dettagli

Dimensione di uno Spazio vettoriale

Dimensione di uno Spazio vettoriale Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione

Dettagli

Modelli di Sistemi di Produzione:

Modelli di Sistemi di Produzione: Modelli di Sistemi di Produzione: programma dettagliato - giugno 2007 1. Algoritmi Metaeuristici 1.1 Algoritmi costruttivi ed algoritmi di ricerca locale/metaeuristici 1.2 Algoritmo di ricerca locale 1.3

Dettagli

1) Descrivere dettagliatamente a quale problema di scheduling corrisponde il problema.

1) Descrivere dettagliatamente a quale problema di scheduling corrisponde il problema. Un veicolo viene utilizzato da una società di trasporti per trasportare beni a partire da un unico deposito verso prefissate località di destinazione. Si supponga che occorre trasportare singolarmente

Dettagli

Lo scheduling. Tipici schedulatori

Lo scheduling. Tipici schedulatori Lo scheduling Un processo durante la sua evoluzione è o running o in attesa di un evento. Nel secondo caso trattasi della disponibilità di una risorsa (CPU, I/O, struttura dati, ecc.) di cui il processo

Dettagli

risulta (x) = 1 se x < 0.

risulta (x) = 1 se x < 0. Questo file si pone come obiettivo quello di mostrarvi come lo studio di una funzione reale di una variabile reale, nella cui espressione compare un qualche valore assoluto, possa essere svolto senza necessariamente

Dettagli

Problemi complessi : come trovare una soluzione soddisfacente?

Problemi complessi : come trovare una soluzione soddisfacente? Informatica nel futuro, sfide e prospettive - evento scientifico per i 40 anni di ated Manno, 7 ottobre 2011 Problemi complessi : come trovare una soluzione soddisfacente? Marino Widmer Università di Friburgo

Dettagli

2. Leggi finanziarie di capitalizzazione

2. Leggi finanziarie di capitalizzazione 2. Leggi finanziarie di capitalizzazione Si chiama legge finanziaria di capitalizzazione una funzione atta a definire il montante M(t accumulato al tempo generico t da un capitale C: M(t = F(C, t C t M

Dettagli

Il concetto di valore medio in generale

Il concetto di valore medio in generale Il concetto di valore medio in generale Nella statistica descrittiva si distinguono solitamente due tipi di medie: - le medie analitiche, che soddisfano ad una condizione di invarianza e si calcolano tenendo

Dettagli

Schedulazione di attività in presenza di attività interrompibili

Schedulazione di attività in presenza di attività interrompibili Schedulazione di attività in presenza di attività interrompibili Maria Silvia Pini Resp. accademico: Prof.ssa Francesca Rossi Università di Padova Attività FSE DGR 1102/2010 La gestione dell informazione

Dettagli

Esercizi Capitolo 6 - Alberi binari di ricerca

Esercizi Capitolo 6 - Alberi binari di ricerca Esercizi Capitolo 6 - Alberi binari di ricerca Alberto Montresor 23 settembre 200 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile

Dettagli

Alberi binari di ricerca

Alberi binari di ricerca Alberi binari di ricerca Definizione Visita dell albero inorder Ricerca Ricerca minimo, massimo e successore. Inserimento ed eliminazione di un nodo Problema del bilanciamento dell albero Albero binario

Dettagli

Programmazione dinamica

Programmazione dinamica Capitolo 6 Programmazione dinamica 6.4 Il problema della distanza di edit tra due stringhe x e y chiede di calcolare il minimo numero di operazioni su singoli caratteri (inserimento, cancellazione e sostituzione)

Dettagli

Insiemi di livello e limiti in più variabili

Insiemi di livello e limiti in più variabili Insiemi di livello e iti in più variabili Insiemi di livello Si consideri una funzione f : A R, con A R n. Un modo per poter studiare il comportamento di una funzione in più variabili potrebbe essere quello

Dettagli

Introduzione al MATLAB c Parte 2

Introduzione al MATLAB c Parte 2 Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione

Dettagli

SISTEMI OPERATIVI. Deadlock (blocco critico) Domande di verifica. Luca Orrù Centro Multimediale Montiferru 04/06/2007

SISTEMI OPERATIVI. Deadlock (blocco critico) Domande di verifica. Luca Orrù Centro Multimediale Montiferru 04/06/2007 2007 SISTEMI OPERATIVI Deadlock (blocco critico) Domande di verifica Luca Orrù Centro Multimediale Montiferru 04/06/2007 Deadlock (blocco critico) 1. Si descriva il deadlock e le condizioni sotto cui si

Dettagli

La f(x) dovrà rimanere all interno di questo intorno quando la x è all interno di un intorno di x 0, cioè I(x 0 ), cioè:

La f(x) dovrà rimanere all interno di questo intorno quando la x è all interno di un intorno di x 0, cioè I(x 0 ), cioè: 1 Limiti Roberto Petroni, 2011 Possiamo introdurre intuitivamente il concetto di limite dicendo che quanto più la x si avvicina ad un dato valore x 0 tanto più la f(x) si avvicina ad un valore l detto

Dettagli

Barriere assorbenti nelle catene di Markov e una loro applicazione al web

Barriere assorbenti nelle catene di Markov e una loro applicazione al web Università Roma Tre Facoltà di Scienze M.F.N Corso di Laurea in Matematica a.a. 2001/2002 Barriere assorbenti nelle catene di Markov e una loro applicazione al web Giulio Simeone 1 Sommario Descrizione

Dettagli

10. Insiemi non misurabili secondo Lebesgue.

10. Insiemi non misurabili secondo Lebesgue. 10. Insiemi non misurabili secondo Lebesgue. Lo scopo principale di questo capitolo è quello di far vedere che esistono sottoinsiemi di R h che non sono misurabili secondo Lebesgue. La costruzione di insiemi

Dettagli

2 + (σ2 - ρσ 1 ) 2 > 0 [da -1 ρ 1] b = (σ 2. 2 - ρσ1 σ 2 ) = (σ 1

2 + (σ2 - ρσ 1 ) 2 > 0 [da -1 ρ 1] b = (σ 2. 2 - ρσ1 σ 2 ) = (σ 1 1 PORTAFOGLIO Portafoglio Markowitz (2 titoli) (rischiosi) due titoli rendimento/varianza ( μ 1, σ 1 ), ( μ 2, σ 2 ) Si suppone μ 1 > μ 2, σ 1 > σ 2 portafoglio con pesi w 1, w 2 w 1 = w, w 2 = 1- w 1

Dettagli

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Un sistema operativo è un insieme di programmi che consentono ad un utente di INTRODUZIONE AI SISTEMI OPERATIVI 1 Alcune definizioni 1 Sistema dedicato: 1 Sistema batch o a lotti: 2 Sistemi time sharing: 2 Sistema multiprogrammato: 3 Processo e programma 3 Risorse: 3 Spazio degli

Dettagli

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. I Sistemi Operativi Il Software di Base Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. Il sistema operativo è il gestore di tutte le risorse

Dettagli

Programmazione della produzione MT MT

Programmazione della produzione MT MT Programmazione della produzione Architettura gerarchica del processo di programmazione M P S livello 1 - livello di fabbrica orizzonte temporale lungo (12-24 mesi) Master Production Schedule n settimane

Dettagli

Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini

Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini Dipartimento di Ingegneria della Informazione Via Diotisalvi, 2 56122 PISA ALGORITMI GENETICI (GA) Sono usati per risolvere problemi di ricerca

Dettagli

Tecniche Reticolari. Problema: determinare l istante di inizio di ogni attività in modo che la durata complessiva del progetto sia minima

Tecniche Reticolari. Problema: determinare l istante di inizio di ogni attività in modo che la durata complessiva del progetto sia minima Project Management Tecniche Reticolari Metodologie per risolvere problemi di pianificazione di progetti Progetto insieme di attività A i di durata d i, (=,...,n) insieme di relazioni di precedenza tra

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 3-Schedulazione 1 Prerequisiti Concetto di media Concetto di varianza 2 1 Introduzione Come sappiamo, l assegnazione della CPU ai processi viene gestita dal nucleo, attraverso

Dettagli

La distribuzione Normale. La distribuzione Normale

La distribuzione Normale. La distribuzione Normale La Distribuzione Normale o Gaussiana è la distribuzione più importante ed utilizzata in tutta la statistica La curva delle frequenze della distribuzione Normale ha una forma caratteristica, simile ad una

Dettagli

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010 elementi di teoria dei grafi anno acc. 2009/2010 Grafi semplici Un grafo semplice G è una coppia ordinata (V(G), L(G)), ove V(G) è un insieme finito e non vuoto di elementi detti vertici o nodi di G, mentre

Dettagli

b i 1,1,1 1,1,1 0,1,2 0,3,4

b i 1,1,1 1,1,1 0,1,2 0,3,4 V o Appello // RICERCA OPERATIVA - Corso A (a.a. 9/) Nome Cognome: Corso di Laurea: L C6 LS LM Matricola: ) Si consideri il problema di flusso di costo minimo in figura. Si verifichi se il flusso ammissibile

Dettagli

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione

Dettagli

Metodi e Modelli Matematici di Probabilità per la Gestione

Metodi e Modelli Matematici di Probabilità per la Gestione Metodi e Modelli Matematici di Probabilità per la Gestione Prova scritta del 30/1/06 Esercizio 1 Una banca ha N correntisti. Indichiamo con N n il numero di correntisti esistenti il giorno n-esimo. Descriviamo

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

Ricerca Operativa Esercizi sul metodo del simplesso. Luigi De Giovanni, Laura Brentegani

Ricerca Operativa Esercizi sul metodo del simplesso. Luigi De Giovanni, Laura Brentegani Ricerca Operativa Esercizi sul metodo del simplesso Luigi De Giovanni, Laura Brentegani 1 1) Risolvere il seguente problema di programmazione lineare. ma + + 3 s.t. 2 + + 2 + 2 + 3 5 2 + 2 + 6,, 0 Soluzione.

Dettagli

Sistemi Operativi Kernel

Sistemi Operativi Kernel Approfondimento Sistemi Operativi Kernel Kernel del Sistema Operativo Kernel (nocciolo, nucleo) Contiene i programmi per la gestione delle funzioni base del calcolatore Kernel suddiviso in moduli. Ogni

Dettagli

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................

Dettagli

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini. Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio

Dettagli

Matematica generale CTF

Matematica generale CTF Successioni numeriche 19 agosto 2015 Definizione di successione Monotonìa e limitatezza Forme indeterminate Successioni infinitesime Comportamento asintotico Criterio del rapporto per le successioni Definizione

Dettagli

Complessità Computazionale

Complessità Computazionale Complessità Computazionale Analisi Algoritmi e pseudocodice Cosa significa analizzare un algoritmo Modello di calcolo Analisi del caso peggiore e del caso medio Esempio di algoritmo in pseudocodice INSERTION

Dettagli

Politecnico di Milano. Facoltà di Ingegneria Industriale. Corso di Analisi e Geometria 2. Sezione D-G. (Docente: Federico Lastaria).

Politecnico di Milano. Facoltà di Ingegneria Industriale. Corso di Analisi e Geometria 2. Sezione D-G. (Docente: Federico Lastaria). Politecnico di Milano. Facoltà di Ingegneria Industriale. Corso di Analisi e Geometria 2. Sezione D-G. (Docente: Federico Lastaria). Aprile 20 Indice Serie numeriche. Serie convergenti, divergenti, indeterminate.....................

Dettagli

VC-dimension: Esempio

VC-dimension: Esempio VC-dimension: Esempio Quale è la VC-dimension di. y b = 0 f() = 1 f() = 1 iperpiano 20? VC-dimension: Esempio Quale è la VC-dimension di? banale. Vediamo cosa succede con 2 punti: 21 VC-dimension: Esempio

Dettagli

Corso di Matematica per la Chimica

Corso di Matematica per la Chimica Dott.ssa Maria Carmela De Bonis a.a. 203-4 I sistemi lineari Generalità sui sistemi lineari Molti problemi dell ingegneria, della fisica, della chimica, dell informatica e dell economia, si modellizzano

Dettagli

Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Concetti fondamentali. Dispatcher. Scheduler della CPU

Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Concetti fondamentali. Dispatcher. Scheduler della CPU Scheduling della CPU Concetti fondamentali Criteri di scheduling Algoritmi di scheduling Concetti fondamentali L obiettivo della multiprogrammazione è di avere processi sempre in esecuzione al fine di

Dettagli

Esponenziali elogaritmi

Esponenziali elogaritmi Esponenziali elogaritmi Potenze ad esponente reale Ricordiamo che per un qualsiasi numero razionale m n prendere n>0) si pone a m n = n a m (in cui si può sempre a patto che a sia un numero reale positivo.

Dettagli

Ottimizzazione delle interrogazioni (parte I)

Ottimizzazione delle interrogazioni (parte I) Ottimizzazione delle interrogazioni I Basi di Dati / Complementi di Basi di Dati 1 Ottimizzazione delle interrogazioni (parte I) Angelo Montanari Dipartimento di Matematica e Informatica Università di

Dettagli

Se x* e punto di minimo (locale) per la funzione nell insieme Ω, Ω = { x / g i (x) 0 i I, h j (x)= 0 j J } lo e anche per F(x) = f o (x) + c x x 2

Se x* e punto di minimo (locale) per la funzione nell insieme Ω, Ω = { x / g i (x) 0 i I, h j (x)= 0 j J } lo e anche per F(x) = f o (x) + c x x 2 NLP -OPT 1 CONDIZION DI OTTIMO [ Come ricavare le condizioni di ottimo. ] Si suppone x* sia punto di ottimo (minimo) per il problema min f o (x) con vincoli g i (x) 0 i I h j (x) = 0 j J la condizione

Dettagli

1. Limite finito di una funzione in un punto

1. Limite finito di una funzione in un punto . Limite finito di una funzione in un punto Consideriamo la funzione: f ( ) = il cui dominio risulta essere R {}, e quindi il valore di f ( ) non è calcolabile in =. Quest affermazione tuttavia non esaurisce

Dettagli

Esercizi per il corso di Algoritmi e Strutture Dati

Esercizi per il corso di Algoritmi e Strutture Dati 1 Esercizi per il corso di Algoritmi e Strutture Dati Esercizi sulla Tecnica Divide et Impera N.B. Tutti gli algoritmi vanno scritti in pseudocodice (non in Java, né in C++, etc. ). Di tutti gli algoritmi

Dettagli

Modelli di scheduling su macchina singola. relazione alle macchine che devono eseguire le varie operazioni, allora ogni singola macchina nello shop è

Modelli di scheduling su macchina singola. relazione alle macchine che devono eseguire le varie operazioni, allora ogni singola macchina nello shop è . Modello base Consideriamo il caso in cui ogni job consiste di una sola operazione. Poiché un insieme di job è partizionato in relazione alle macchine che devono eseguire le varie operazioni, allora ogni

Dettagli

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica Il presente esame scritto deve essere svolto in forma individuale in un tempo massimo di 60 minuti dalla sua

Dettagli

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Condizione di sincronizzazione Qualora si voglia realizzare una determinata politica di gestione delle risorse,la decisione se ad

Dettagli

Algoritmi euristici per il caricamento e l instradamento di una flotta di bisarche

Algoritmi euristici per il caricamento e l instradamento di una flotta di bisarche Università degli Studi di Modena e Reggio Emilia Ingegneria di Reggio Emilia Estratto della Tesi di Laurea di Simone Falavigna Algoritmi euristici per il caricamento e l instradamento di una flotta di

Dettagli

Note su quicksort per ASD 2010-11 (DRAFT)

Note su quicksort per ASD 2010-11 (DRAFT) Note su quicksort per ASD 010-11 (DRAFT) Nicola Rebagliati 7 dicembre 010 1 Quicksort L algoritmo di quicksort è uno degli algoritmi più veloci in pratica per il riordinamento basato su confronti. L idea

Dettagli

IL PROBLEMA DELLO SHORTEST SPANNING TREE

IL PROBLEMA DELLO SHORTEST SPANNING TREE IL PROBLEMA DELLO SHORTEST SPANNING TREE n. 1 - Formulazione del problema Consideriamo il seguente problema: Abbiamo un certo numero di città a cui deve essere fornito un servizio, quale può essere l energia

Dettagli